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

本文关键字:服务器 身份验证 响应 Authentication Requ 经过 客户端 SMTP 安全 连接 错误 | 更新日期: 2023-09-27 18:12:10

我使用以下代码发送电子邮件。当我试图发送邮件时,我得到错误信息

MailMessage mail = new MailMessage(from.txt, to.txt, subject, body);
SmtpClient clint = new SmtpClient();
//for determile email smtp...
string x = from.txt;
int startIndex = x.IndexOf('@');
int endIndex = x.LastIndexOf('.');
int length = endIndex - startIndex;
string xx = x.Substring(startIndex + 1, length - 1);
if (xx == "gmail" || xx == "Gmail")
{
    clint.Host = "smtp.gmail.com";
    clint.Port = 587;
    clint.EnableSsl = true;
}
if (xx == "Hotmail" || xx == "hotmail" || xx == "live" || xx == "Live")
{
    clint.Host = "smtp.live.com";
    clint.Port = 587;
    clint.EnableSsl = true;
}
if (xx == "yahoo" || xx == "Yahoo")
{
    clint.Host = "smtp.mail.yahoo.com";
    clint.Port = 465;
    clint.EnableSsl = true;
}
clint.Credentials = new System.Net.NetworkCredential(username, password);
clint.DeliveryMethod = SmtpDeliveryMethod.Network;
clint.UseDefaultCredentials = false;
clint.Send(mail);
MetroMessageBox.Show(this, "Email Successfully Send", "Success",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);

以及如何将任何文件附加到此电子邮件

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

对于你得到的错误,我在网上读到你应该在凭据行之前使用UseDefaultCredentials,并且你的客户对象的EnableSsl应该设置为true。

引用在这里

以及如何将任何文件附加到此电子邮件

您可以通过向邮件对象添加附件:

mail.Attachments.Add(new Attachment(filename));

我忘了说Gmail的双重认证可能是个问题。如果是,请参考我之前链接的第二个解决方案。

相关文章: