2013-05-07 51 views
0

我試圖讓我的應用程序中的電子郵件工作。在我的web.config中我有:電子郵件 - 在web.config中設置它有什麼意義

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
      <network host="A host address" port="37" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

現在在代碼中我新建了一個SmtpClient();

var client = new SmtpClient(); 

然後我必須繼續設置端口和主機?

client.Host = "A host address"; 
client.Port = 37; 

我對此感到困惑。我不明白在webconfig中設置它們的重要性,如果您在新建SmtpClient時必須繼續並設置變量。

我錯過了什麼嗎?

+0

如果你已經設定,在web.config中的主機和端口應該已經在SmtpClient對象上,當您使用默認的構造函數 – joshuahealy 2013-05-07 23:17:36

+0

這就是我的想法來設定,但它不是 – user2005657 2013-05-07 23:18:01

+0

你是對的。我認爲這不起作用,因爲我正在從單元測試中檢查哪裏出於某種原因沒有設置。在實際的應用程序中。我猜這是因爲爲了讓它在測試中工作,你可能需要一個配置屬性來執行正在測試的項目程序集? – user2005657 2013-05-07 23:22:15

回答

0

我想你只是缺少deliveryMethod屬性。更改您的配置爲:

<system.net> 
    <mailSettings> 
    <smtp from="[email protected]" deliveryMethod="Network"> 
     <network host="A host address" port="37" /> 
    </smtp> 
    </mailSettings> 
</system.net> 
0

下面是如何將您的system.net設置爲web.config的示例。

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]">    
     <network 
      host="smtp.sendgrid.com" 
      port="587" 
      userName="stackoverflow" 
      password="qwertyuiuioopp" 
     /> 
     </smtp> 
    </mailSettings> 
</system.net> 
相關問題