通过C#.Net代码发送电子邮件不起作用
本文关键字:电子邮件 不起作用 代码 Net 通过 | 更新日期: 2023-09-27 18:26:23
我有一个C#.Net代码,当我使用下面这样的gmail帐户时,它会通过gmail发送电子邮件:
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("test@example.com","Test12345");
smtp.Timeout = 9000;
smtp.Send(MMsg);
正在使用的电子邮件是我过去使用的电子邮件,但我们需要将此电子邮件更改为新电子邮件。任何新的电子邮件凭据都不起作用。它给我的错误是:
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at
Line 120: smtp.Credentials = new NetworkCredential("test@example.com", "Test12345");
Line 121: smtp.Timeout = 9000;
Line 122: smtp.Send(MMsg);
知道我缺了什么吗?我如何通过应用程序制作其他新电子邮件来工作?
更新:我不得不在谷歌网站上打开"访问不太安全的应用程序":https://www.google.com/settings/security/lesssecureapps让它发挥作用。
您的代码看起来不错。
假设您的登录凭据正确,请检查您的gmail帐户上是否启用了"允许不太安全的应用程序",并检查是否启用了双因素身份验证。
如果启用了双因素身份验证,您将需要创建一个特定于应用程序的密码,并将其用于登录凭据。
这可能是因为您需要启用不太安全的应用程序。
https://www.google.com/settings/security/lesssecureapps
然后,您可以按照以下方式发送电子邮件:
var fromAddress = new MailAddress("myaccount@gmail.com", "My Name");
var toAddress = new MailAddress("test.address@email.com", "Mr Test");
const string fromPassword = "tbhagpfpcxwhkczd";
const string subject = "test";
const string body = "HEY, LISTEN!";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
Timeout = 20000
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}