2013-05-07 63 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> 
相关问题