通过C#.Net代码发送电子邮件不起作用

通过C#.Net代码发送电子邮件不起作用,c#,asp.net,.net,C#,Asp.net,.net,我有一个C#.Net代码,当我使用gmail帐户时,它会通过gmail发送电子邮件,如下所示: smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.UseDefaultCredentials = false;

我有一个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);
知道我错过了什么吗?如何通过应用程序制作其他新电子邮件来工作

更新:
我必须在谷歌网站上打开“访问不太安全的应用程序”才能让它工作。

这可能是因为你需要启用不太安全的应用程序

然后,您可以按照以下方式发送电子邮件:

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);
}
你的代码看起来不错

假设您的登录凭据正确,请检查您的gmail帐户上是否启用了允许不太安全的应用程序,并检查是否启用了双因素身份验证


如果启用了双因素身份验证,则需要创建特定于应用程序的密码,并将其用于登录凭据。

您的凭据不正确。通过查看您的代码,我可以看出您没有提供正确的电子邮件帐户。您是否检查了此答案?试试这个。我想这对你有用错误信息对我来说似乎是不言自明的。。。您的凭据是错误的。@NguyenHoang您不会真的希望他提供他的gmail登录凭据。这显然是匿名的。可能是重复的。你能解释为什么你的代码样本比OP更好,或者为什么你认为他的不够好吗?我回答的核心是启用不太安全的应用程序,因为这就是他出错的原因。我的代码并不是特别好,它只是用来检查感觉。