【问题标题】:How can i solve smtp authentication issue?如何解决 smtp 身份验证问题?
【发布时间】:2017-02-05 00:28:38
【问题描述】:

我有一个网络应用程序,我想在我的应用程序中发送电子邮件。但我面临这个错误: SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.1 需要身份验证。 这是我的代码示例:

 public static bool SendMail(string subject, string body, params string[] toMails)
    {
        try
        {
            var mailMsg = new MailMessage();
            mailMsg.BodyEncoding = Encoding.UTF8;
            mailMsg.HeadersEncoding = Encoding.UTF8;
            mailMsg.SubjectEncoding = Encoding.UTF8;
            mailMsg.Priority = MailPriority.High;
            mailMsg.Subject = subject;
            mailMsg.Body = body;
            mailMsg.IsBodyHtml = true;
            mailMsg.From = new MailAddress("mail@yahoo.com","",Encoding.UTF8);
            mailMsg.Sender = new MailAddress("mail@mail.com", "", Encoding.UTF8);
            foreach (var mail in toMails)
            {
                mailMsg.To.Add(new MailAddress(mail));
            }
            SmtpClient smtp = new SmtpClient();
            smtp.EnableSsl = true;
            smtp.Credentials = new System.Net.NetworkCredential("mail@yahoo.com", "pass", "smtp.mail.yahoo.com");
            smtp.Host = "smtp.mail.yahoo.com";
            smtp.Port = 587; 
            smtp.UseDefaultCredentials = true;
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp.Send(mailMsg);
            return true;
        }
        catch
        {
            return false;
        }
    }

【问题讨论】:

标签: asp.net-mvc smtp-auth


【解决方案1】:

我认为您的问题是正在使用的端口号。根据以下内容,TLS 的端口 465 不是 587。

http://support.sliqtools.co.uk/kb/a32/smtp-email-settings-to-send-from-yahoo-email-addresses.aspx

【讨论】:

【解决方案2】:

删除此行,如果这是真的,它不使用您定义的几行的凭据。

    smtp.UseDefaultCredentials = true;

【讨论】:

    猜你喜欢
    • 2022-08-04
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    相关资源
    最近更新 更多