使用SmtpClient发送邮件时出错

时间:2014-10-17 14:32:39

标签: c# smtp google-apps smtpclient

我现在一直在为此付出很多努力。

我尝试使用我的谷歌应用程序帐户使用我的mvc应用程序发送邮件。但我不断收到错误。我使用哪种设置无关紧要。我尝试使用端口465和587与ssl和身份验证打开。 465我得到了操作超时和587我得到了这个消息:

  

SMTP服务器需要安全连接,否则客户端不需要   认证。服务器响应为:5.5.1需要身份验证

我试着转动防火墙没有运气。我还试图关闭两步验证,但我发现它甚至没有打开。

我希望你能帮助我 此致

以下是所要求的代码:

public static void SendMail(MailAddress from, MailAddress to, string subject, string body) {
    MailMessage mail = new MailMessage();
    mail.From = from;
    mail.To.Add(to);
    mail.Subject = subject;
    mail.Body = body;


    SmtpClient client;
    if (Settings.Port != null)
        client = new SmtpClient(Settings.Host, Int32.Parse(Settings.Port));
    else
        client = new SmtpClient(Settings.Host);

    client.EnableSsl = Settings.UseSSL;

    client.Timeout = 50000;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;

    if (Settings.UseAuthentication) {
        client.Credentials = new NetworkCredential(Settings.Username, Settings.Password);
        client.UseDefaultCredentials = false;
    }

    client.Send(mail);
}

我检查了所有obvius内容,如用户名和密码(用户名形成为user@domain.com)。我还通过代码来验证我的设置类是否正常工作

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。在设置凭据之前必须先client.UseDefaultCredentials = false;。现在client.Send方法无异常返回。