相关疑难解决方法(0)

与SmtpClient.UseDefaultCredentials属性混淆

在我的MVC4应用程序中,我使用它SmtpClient通过Gmail的smtp.gmail.comSMTP服务器发送电子邮件.

我已使用以下设置配置了我的Web.Config文件:

<system.net>
 <mailSettings>
  <smtp deliveryMethod="Network">
   <network enableSsl="true" 
   defaultCredentials="false" 
   host="smtp.gmail.com" 
   port="587" 
   userName="xxMyUserNamexx@gmail.com" 
   password="xxMyPasswordxx" />
  </smtp>
 </mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)

使用SmtpClient并发送电子邮件消息的方法如下所示:

public void SendMail(string fromDisplayName, string fromEmailAddress, string toEmailAddress, string subject, string body)
{
    MailAddress from = new MailAddress(fromEmailAddress, fromDisplayName);
    MailAddress to = new MailAddress(toEmailAddress);
    MailMessage mailMessage = new MailMessage(from, to);
    mailMessage.Body = body;
    mailMessage.Subject = subject;

    SmtpClient client = new SmtpClient();
    //client.UseDefaultCredentials = false;
    client.Send(mailMessage);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码按预期工作,很好.令我困惑的是注释行client.UseDefaultCredentials = false;- 如果我要取消注释该行,我将收到一条异常消息,指出:

SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证.

更重要的是,如果我将UseDefaultCredentials属性设置为true或者 …

asp.net-mvc smtpclient

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

asp.net-mvc ×1

smtpclient ×1