web.config内容不会影响SmtpClient()配置

时间:2013-08-18 01:26:35

标签: c# asp.net asp.net-mvc-2

尝试通过SmtpClient配置邮件时遇到问题。

我通过web.config文件配置它,代码如下:

<configuration>
  <system.net>
    <mailSettings>
      <smtp from="mail@gmail.com" deliveryMethod="Network">
        <network enableSsl="true" host="smtp.gmail.com" port="587" userName="mail@gmail.com" password="pass" />
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

然后发送消息:

mailMessage = new MailMessage("mail@gmail.com", "mail@gmail.com", Subj, message.ToString());
using (var smtpClient = new SmtpClient()) { 
    smtpClient.Send(mailMessage); 
} 

但是此时我收到一个异常,说明没有指定SMTP主机。 我尝试用这种方式初始化它:新的SmtpClient(“smtp.gmail.com”),然后我收到了另一个关于SSL但是没有配置的例外。

因此,显然,web.config内容被忽略了。如何指定实际存在所有必要设置?

1 个答案:

答案 0 :(得分:2)

您的web.config内容看起来不像应用程序根web.config,但是存储在子目录中的内容(例如mywebsite.com/foo/web.config而不是mywebsite.com/web.config

<system.net><mailSettings>配置元素移动到应用程序根目录中的web.config文件,然后它就可以运行。