【问题标题】:Getting error while sending an email from my gmail account从我的 gmail 帐户发送电子邮件时出错
【发布时间】:2012-03-16 10:33:42
【问题描述】:

错误:SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 Authentication Required。

我的代码在这里:

protected void Button1_Click(object sender, EventArgs e)
       {
        Random r = new Random();
        int rand = r.Next(10000, 90000);
        string from = "srkdbest12@gmail.com";
        string to = "ankushjain358@gmail.com";
        string subject = "User Authentification";
        string body = "click on the below link to AUTHENTICATE your account<br>";
        body += "confirmation.aspx?confirm=" + rand;

        try
        {
            MailMessage mailObject = new MailMessage(from, to, subject, body);

            SmtpClient smtp = new SmtpClient("smtp.gmail.com");
            smtp.Credentials = new NetworkCredential("srkdbest12@gmail.com", "MyPassword");
            smtp.EnableSsl = true;
            smtp.Port = 587;
            smtp.UseDefaultCredentials = false;

            smtp.Send(mailObject);
        }
        catch (Exception ee)
        {
            throw new ApplicationException("Confirmation email was not sent please try again or Try with a new email id<br>" + ee.Message);
        }

【问题讨论】:

  • 重新抛出时应该保留 InnerException。
  • HTML 不应出现在异常消息中。
  • html 在这里没有引起问题
  • 这就是为什么我把它写成评论,而不是答案。

标签: c# asp.net email gmail


【解决方案1】:

不要设置UseDefaultCredentials

【讨论】:

  • 按照您的回答,我的程序没有出现异常...但我现在也没有收到电子邮件...
  • 但是为什么这些邮件是垃圾邮件?
  • 主题被提及为邮件对象的主题属性
【解决方案2】:

以下代码适用于我:

SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("login", "password");
client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;

更新:正如akiller正确建议的那样,UseDefaultCredentials 属性应该在分配凭据之前设置为false。这就是使这段代码起作用的原因。

【讨论】:

  • @SLaks:是的,但它可以在 app.config/machine.config 中被覆盖
  • 拥有 client.UseDefaultCredentials = false;在您设置凭据的那一行之前是使它起作用的原因(在 OPs 问题中并非如此)。
  • @akiller:有道理,非常感谢。我会更新答案。
猜你喜欢
  • 2013-03-24
  • 2014-08-25
  • 2011-12-15
  • 2012-03-30
  • 1970-01-01
  • 2013-12-19
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多