C# 使用google smtp服务器时在.net中发送电子邮件失败
我正试图发送这样的电子邮件C# 使用google smtp服务器时在.net中发送电子邮件失败,c#,email,c#-4.0,c#-3.0,c#-2.0,C#,Email,C# 4.0,C# 3.0,C# 2.0,我正试图发送这样的电子邮件 var fromAddress = new MailAddress("fromaddress", "From Name"); var toAddress = new MailAddress("toaddress", "To Name"); const string fromPassword = "password"; const string subject = "Subject"; const stri
var fromAddress = new MailAddress("fromaddress", "From Name");
var toAddress = new MailAddress("toaddress", "To Name");
const string fromPassword = "password";
const string subject = "Subject";
const string body = "Body";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}
Console.WriteLine("Sent");
Console.ReadLine();
但它给出了这个错误
The SMTP server requires a secure connection or the client was not authenticated.
The server response was: 5.5.1 Authentication Required.
我在本地主机上的简单控制台应用程序中使用这段代码。那么我的代码有什么问题
更新
我更改了fromAddress电子邮件,它成功地发送了电子邮件。但我的toAddress电子邮件的收件箱/垃圾邮件中没有收到任何电子邮件 创建SmtpClient时,尝试添加DeliveryMethod=SmtpDeliveryMethod.Network 见帖子: 这里讨论的原因有很多:
第一个链接中的代码对我有效。是否使用两步验证? 您需要使用特定于应用程序的密码登录:
你的代码对我也有用 为什么C#4、3、2都被标记?你确定用户名/密码组合确实有效吗?我看到您的实现与相同。您尝试过端口465吗?@HOKBONG是的,当我们尝试此端口时,它只是停留了几分钟,然后超时。这可能是防火墙问题。如果您有访问权限,请打开端口587和465进行出站连接。如果您看到我的问题。我确实有这个,是的,但我搜索了很多,几乎都试过了。这就是为什么我来这里问你在帖子中解释的特定于应用程序的密码?(直接链接:)