C# 我在使用c发送电子邮件时有一个例外

C# 我在使用c发送电子邮件时有一个例外,c#,email,smtp,C#,Email,Smtp,我创建了一种发送电子邮件的方法,如: public async Task SendEmailCC(string body, string subject, List<string> mainRecievers, List<string> receivers) { SmtpClient client = new SmtpClient("smtp-mail.outlook.com") {

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

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);
}
为了考试,我给自己发了一封电子邮件,但我没有收到。我怎样才能找到我的问题


我的例外是连接验证。

邮件服务器是google,我使用了OutLookSmtp,在我的代码的这一部分,我使用了它,并进行了更改。比如:

SmtpClient client = new SmtpClient("smtp-mail.outlook.com")
并改变了:

SmtpClient client = new SmtpClient("smtp.gmail.com")
之后,我得到了这个异常:

SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:需要5.5.1身份验证,但由于以下情况可能会发生错误

对于此问题,我尝试以下方法:

案例1:密码错误时

案例2:当您尝试从某个应用程序登录时

案例3:当您尝试从时区/域/计算机以外的域登录时,在大多数情况下,从代码发送邮件时都是这种情况

每个问题都有一个解决方案

案例1的解决方案:输入正确的密码

案例2的解决方案1:转到以下链接的安全设置并启用不太安全的应用程序。这样您就可以从所有应用程序登录

案例2的解决方案2:请参阅启用双因素身份验证,即两步验证,然后生成特定于应用程序的密码。使用新生成的密码通过SMTP进行身份验证

案例3的解决方案1:这可能有助于您查看活动。但是,由于最新的安全标准,审查该活动将毫无帮助。该链接将毫无用处。所以试试下面的例子

案例3的解决方案2:如果您在生产服务器上的某个位置托管了代码,并且您可以访问生产服务器,则可以与生产服务器建立远程桌面连接,并尝试从生产服务器的浏览器登录一次。这将添加Exceptioon登录到谷歌,您将被允许从代码登录

但是,如果您没有访问生产服务器的权限,该怎么办呢。尝试解决方案3

案例3的解决方案3:您必须为您的google帐户启用从其他时区/ip登录

要执行此操作,请单击链接并单击“继续”按钮以允许访问


就这样。干得好。现在你可以从任何计算机和应用程序登录到你的google帐户

邮件服务器是google和我使用的OutLookSmtp,到我的代码的这一部分,我已经更改了。比如:

SmtpClient client = new SmtpClient("smtp-mail.outlook.com")
并改变了:

SmtpClient client = new SmtpClient("smtp.gmail.com")
之后,我得到了这个异常:

SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:需要5.5.1身份验证,但由于以下情况可能会发生错误

对于此问题,我尝试以下方法:

案例1:密码错误时

案例2:当您尝试从某个应用程序登录时

案例3:当您尝试从时区/域/计算机以外的域登录时,在大多数情况下,从代码发送邮件时都是这种情况

每个问题都有一个解决方案

案例1的解决方案:输入正确的密码

案例2的解决方案1:转到以下链接的安全设置并启用不太安全的应用程序。这样您就可以从所有应用程序登录

案例2的解决方案2:请参阅启用双因素身份验证,即两步验证,然后生成特定于应用程序的密码。使用新生成的密码通过SMTP进行身份验证

案例3的解决方案1:这可能有助于您查看活动。但是,由于最新的安全标准,审查该活动将毫无帮助。该链接将毫无用处。所以试试下面的例子

案例3的解决方案2:如果您在生产服务器上的某个位置托管了代码,并且您可以访问生产服务器,则可以与生产服务器建立远程桌面连接,并尝试从生产服务器的浏览器登录一次。这将添加Exceptioon登录到谷歌,您将被允许从代码登录

但是,如果您没有访问生产服务器的权限,该怎么办呢。尝试解决方案3

案例3的解决方案3:您必须为您的google帐户启用从其他时区/ip登录

要执行此操作,请单击链接并单击“继续”按钮以允许访问


就这样。干得好。现在,您可以从任何计算机或通过任何应用程序登录到您的google帐户

提供有关异常的适当详细信息。确保您的Gmail配置正确。例如,帐户设置下的端口和设置正确。@selmaohneh好的,我会试试看。@Amirhosein请检查我的Asnwer。提供异常的正确详细信息。确保您的Gmail配置正确。例如,帐户设置下的端口和设置正确。@selmaohneh好的,我试试。@Amirhosein请检查我的Asnwer。