对不起,我看到很多关于此事的类似帖子,但从来没有找到任何解决我的问题,所以我决定发布它.
我使用ASP.NET c#使用gmail以编程方式发送电子邮件,代码如下.
string EmailAddress = senderemail;
MailMessage mailMessage = new MailMessage(EmailAddress, EmailAddress);
mailMessage.Subject = "This is a test email";
mailMessage.Body = "This is a test email. Please reply if you receive it.";
SmtpClient smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.Credentials = new System.Net.NetworkCredential()
{
UserName = EmailAddress,
Password = senderpassword
};
smtpClient.UseDefaultCredentials = false;
smtpClient.Send(mailMessage);
Run Code Online (Sandbox Code Playgroud)
我和其他人一样收到了这个错误
错误:
SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证.了解更多信息.
GMAIL已经做了以下两项行动.
无安全的应用程序:打开
-2步验证:关闭
我不在乎这个gmail帐户是安全还是什么.我不需要此帐户的任何安全性.我该怎么办?
小智 17
注册Gmail并转到https://www.google.com/settings/security/lesssecureapps,您可以在其中查看设置.访问安全性较低的应用
关闭(默认)==>开启
添加此代码后,
MailMessage mail = new MailMessage("fromm@gmail.com", "toaddress@gmail.com");
mail.Subject = "TestEmailImportant";
mail.Body = "This mail is to test if this program is working";
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
smtpClient.Credentials = new System.Net.NetworkCredential()
{
UserName = "XXXXXX@gmail.com",
Password = "YYYYYYYY"
};
smtpClient.EnableSsl = true;
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object s,
System.Security.Cryptography.X509Certificates.X509Certificate certificate,
System.Security.Cryptography.X509Certificates.X509Chain chain,
System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true;
};
smtpClient.Send(mail);
Run Code Online (Sandbox Code Playgroud)