C# 无法从ASP.NET中的Gmail帐户发送邮件

C# 无法从ASP.NET中的Gmail帐户发送邮件,c#,asp.net,email,gmail,C#,Asp.net,Email,Gmail,我正在使用此代码发送邮件 using System.Net.Mail; using System.Net.Security; MailMessage mail = new MailMessage(); mail.From = new MailAddress("abc@gmail.com"); mail.To.Add("xyz@gmail.com"); mail.IsBodyHtml = true; mail.Subject = "Email Se

我正在使用此代码发送邮件

  using System.Net.Mail;
  using System.Net.Security;

    MailMessage mail = new MailMessage();
    mail.From = new MailAddress("abc@gmail.com");
    mail.To.Add("xyz@gmail.com");
    mail.IsBodyHtml = true;
    mail.Subject = "Email Sent";
    mail.Body = "Mail Done";
    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
    smtp.Credentials = new System.Net.NetworkCredential("abc@gmail.com", "123456");
    smtp.EnableSsl = true;
    smtp.Send(mail);
    Label1.Text = "Mail Sent";
当我使用abc@gmail.com(一个电子邮件id)对于发送电子邮件,邮件将成功发送,但当我使用pqr@gmail.com(另一个邮件id)邮件发送失败。在本地服务器上,“abc”和“pqr”工作正常

请帮我解决这个问题

错误消息

the smtp server requires a secure connection or the client is not authenticated the server response was 5.5.1 authentication requires

将您的代码更新为以下内容:

SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.Credentials = new System.Net.NetworkCredential("abc@gmail.com", "123456");
smtp.EnableSsl = true;
smtp.UseDefaultCredentials = false;
smtp.Send(mail);

请在
enableSSl=true
code之后尝试这一行

smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

Gmail增加了一项新的安全功能,不允许使用不太安全的应用程序发送电子邮件。您必须更改gmail帐户的设置,以允许不太安全的应用程序使用谷歌在下面链接中给出的步骤进行访问

启用不太安全的应用程序访问帐户 1.登录到您的谷歌管理控制台

  • 单击安全>基本设置

  • 在不太安全的应用下,选择转到不太安全应用的设置。 在子窗口中,选择允许用户管理其对不太安全的应用程序的访问单选按钮。 将“允许用户管理其对不太安全的应用的访问”设置为“打开”后,所选组或组织单位中受影响的用户将能够自己打开或关闭对不太安全的应用的访问


  • 从发送电子邮件时引发了哪个错误或异常pqr@gmail.com?您是否将用户和凭据也替换为pqr@gmail.com? 还是只有发件人?凭据很好。你得到答案了吗?我也遇到过同样的问题。实际上,代码在本地服务器上运行良好。但在上传后,给出错误端口是否被主机阻止?虽然这可能有助于OP,但包含解决方案的解释几乎总是一个更好的答案。仅仅给某人一个答案对帮助他们理解问题或帮助他们克服未来的障碍都没有好处。