我的邮件发件人不会向某人发送电子邮件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的邮件发件人不会向某人发送电子邮件相关的知识,希望对你有一定的参考价值。
我创建了一个发送Email
的方法,如:
public async Task SendEmailCC(string body, string subject, List<string> mainRecievers, List<string> receivers)
{
SmtpClient client = new SmtpClient("smtp-mail.outlook.com")
{
UseDefaultCredentials = true,
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential("Test@gmail.com", "MyMailPassword")
};
MailMessage mailMessage = new MailMessage { From = new MailAddress("job@test.org") };
foreach (var reciever in mainRecievers)
{
mailMessage.To.Add(reciever);
}
foreach (var item in receivers)
{
mailMessage.CC.Add(item);
}
mailMessage.Body = body;
mailMessage.IsBodyhtml = true;
mailMessage.Subject = subject;
await client.SendMailAsync(mailMessage);
}
为了测试,我发送电子邮件给我自己,但我没有得到Email
。我怎么才能找到我的问题?
确实,我不喜欢回答我的问题,但我发现了。
我的邮件服务器是google,我使用的是OutLookSmtp
,对于我的代码的这部分,我有,我改变了。喜欢:
SmtpClient client = new SmtpClient("smtp-mail.outlook.com")
变成:
SmtpClient client = new SmtpClient("smtp.gmail.com")
之后我得到了这个例外:
SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应是:5.5.1 Authentication Required“,因为以下情况可能会发生错误。
对于这个问题,我试试这个:
案例1:密码错误时
案例2:当您尝试从某个应用程序登录时
案例3:当您尝试从您的时区/域/计算机以外的域登录时(在大多数情况下从代码发送邮件时都是这种情况)
每个都有一个解决方案
案例1的解决方案:输入正确的密码。
案例2的解决方案1:转到以下链接qazxsw poi的安全设置,并启用安全性较低的应用程序。这样您就可以从所有应用程序登录。
案例2的解决方案2 :(请参阅https://www.google.com/settings/security/lesssecureapps)启用双因素身份验证(也称为两步验证),然后生成应用程序专用密码。使用新生成的密码通过SMTP进行身份验证。
案例3的解决方案1 :(这可能会有所帮助)您需要查看活动。但由于最新的安全标准,链接无效,因此审核该活动将无济于事。所以尝试以下案例。
案例3的解决方案2:如果您已将代码托管在生产服务器上的某个位置,并且您可以访问生产服务器,则需要将远程桌面连接连接到生产服务器并尝试从生产服务器的浏览器登录一次。这将为登录google添加excpetioon,您将被允许从代码登录。
但是,如果您无权访问生产服务器,该怎么办?尝试解决方案3
案例3的解决方案3:您必须启用从其他时区/ IP登录您的Google帐户。
要做到这一点,请按照链接https://stackoverflow.com/a/9572958/52277并通过单击继续按钮允许访问。
就是这样。干得好。现在,您可以从任何计算机和任何应用程序登录到您的Google帐户
以上是关于我的邮件发件人不会向某人发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章