我在使用 c# 发送电子邮件时出现异常

我创建了一种发送电子邮件的方法,例如:


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);

}

为了测试,我给自己发了一封电子邮件,但我没有收到电子邮件。我怎样才能找到我的问题?


我的例外是连接身份验证。


拉风的咖菲猫
浏览 293回答 1
1回答

拉莫斯之舞

邮件服务器是谷歌,我使用了 OutLookSmtp,对于我的代码的这一部分,我有那个,我改变了。喜欢:SmtpClient&nbsp;client&nbsp;=&nbsp;new&nbsp;SmtpClient("smtp-mail.outlook.com")并改变:SmtpClient&nbsp;client&nbsp;=&nbsp;new&nbsp;SmtpClient("smtp.gmail.com")之后我得到这个异常:SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 Authentication Required”,由于以下情况可能会发生错误。对于这个问题,我试试这个:案例一:密码错误时案例2:当您尝试从某个应用程序登录时案例3:当您尝试从您的时区/域/计算机以外的域登录时(在大多数情况下从代码发送邮件时都是这种情况)每个人都有一个解决方案案例一的解决方法:输入正确的密码。案例 2 的解决方案 1:通过以下链接https://www.google.com/settings/security/lesssecureapps转到安全设置并启用不太安全的应用程序。这样您就可以从所有应用程序登录。案例 2 的解决方案 2:(请参阅https://stackoverflow.com/a/9572958/52277)启用双因素身份验证(也称为两步验证),然后生成应用程序专用密码。使用新生成的密码通过 SMTP 进行身份验证。案例 3 的解决方案 1:(这可能会有所帮助)您需要查看活动。但由于最新的安全标准,查看活动将无济于事,该链接将无用。所以试试下面的案例。案例 3 的解决方案 2:如果您将代码托管在生产服务器上的某处并且您可以访问生产服务器,则将远程桌面连接到生产服务器并尝试从生产服务器的浏览器登录一次。这将为登录谷歌添加例外,您将被允许从代码登录。但是,如果您无权访问生产服务器怎么办。尝试解决方案 3案例 3 的解决方案 3:您必须为您的 google 帐户启用从其他时区/ip 登录。为此,请点击链接https://g.co/allowaccess并通过单击继续按钮允许访问。就是这样。干得好。现在您将能够从任何计算机和任何应用程序登录到您的谷歌帐户
打开App,查看更多内容
随时随地看视频慕课网APP