出于某种原因,既不是接受的答案,也没有其他工作为我“通过Gmail在。net发送电子邮件”。为什么它们不会起作用?

更新:我已经在另一个问题中尝试了所有的答案(接受的和其他的),但没有一个有效。

我只是想知道它是否适用于其他人,否则谷歌可能已经改变了一些东西(以前发生过)。

当我尝试使用SmtpDeliveryMethod的代码段时。网络,我很快收到一个SmtpException发送(消息)。信息是

SMTP服务器需要安全连接,否则客户端未经过身份验证。

服务器的回复是:

5.5.1认证要求在“<——说真的,它到此结束。

更新:

这是我很久以前问过的一个问题,公认的答案是我在不同的项目中使用过很多很多次的代码。

我采用了这篇文章和其他EmailSender项目中的一些想法,在Codeplex上创建了一个EmailSender项目。它是为可测试性而设计的,支持我最喜欢的SMTP服务,如GoDaddy和Gmail。


当前回答

更改您的gmail密码,再试一次,它应该工作之后。

不知道为什么,但每次你改变你的主机,你必须改变你的密码。

其他回答

这些错误有一个或多个原因。

Log in with your Gmail( or any other if ) in your local system. Also check for Less Secure App and Set it to "Turn On" here is the Link for GMAIL. https://www.google.com/settings/security/lesssecureapps check for EnableSsl in your Email code, and also set it to true. smtp.EnableSsl = true; Also check which port are you using currently. 25 is Global, but you can check it for others too like 587. check here. Does all SMTP communication happen over 25? IF YOU ARE ON REMOTE : Check the answer of Vlad Tamas above.

首先检查您的gmail帐户设置,并从“访问不太安全的应用程序”打开。

我们强烈建议您使用安全的应用程序,如Gmail,来访问您的帐户。谷歌的所有应用程序都符合这些安全标准。另一方面,使用不太安全的应用程序可能会让你的账户容易受到攻击。学习更多的知识。

集 smtp。UseDefaultCredentials = false; 之前 smtp。凭证=新的网络凭证(fromAddress, fromPassword);

谷歌不再允许“不太安全的应用程序”,所以这对普通gmail用户来说是不可能的。

https://support.google.com/accounts/answer/6010255?hl=en#zippy=%2Cif-less-secure-app-access-is-on-for-your-account

从谷歌:

为了保证您的账户安全,从2022年5月30日起,谷歌号 long支持使用第三方应用程序或设备来询问您 仅使用您的用户名和登录您的谷歌帐户 密码。 重要提示:此截止日期不适用于谷歌工作区或谷歌工作区 云身份客户。这些客户的执行日期 将于晚些时候在工作空间博客上公布。 欲了解更多信息,请继续阅读。

smtp.Host = "smtp.gmail.com"; //host name
smtp.Port = 587; //port number
smtp.EnableSsl = true; //whether your smtp server requires SSL
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.Timeout = 20000;

谷歌不再允许“不太安全的应用程序”,所以这对普通Gmail用户来说是不可能的。

2022年5月后谷歌更改。

对于这些更改,我们必须对代码进行以下更改。

First go to Gmail account security. Enable two-factor authentication. Configure the App password in the google account. Use the App password in the application. MailMessage mail = new MailMessage(); mail.To.Add(email.Text.ToString().Trim()); mail.From = new MailAddress("your_Gmail_address"); mail.Subject = "Hello test email"; mail.Body = "<p>hello user<br/> How are you?</p>"; mail.IsBodyHtml = true; SmtpClient smtp = new SmtpClient(); smtp.Port = 587; // 25 465 smtp.EnableSsl = true; smtp.UseDefaultCredentials = false; smtp.Host = "smtp.gmail.com"; smtp.Credentials = new System.Net.NetworkCredential("your_Gmail_address", "Your_gmail_app_password"); smtp.Send(mail);