所以,我正在使用Windows Forms并尝试使用smtp发送电子邮件。 这是一个代码:
MailMessage mail = new MailMessage(from, to, subject, text);
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.Port = 465;
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential(from, password);
try
{
client.Send(mail);
MessageBox.Show("Mesage has benn sant");
}
catch (Exception ex)
{
MessageBox.Show("Failure while sending message");
MessageBox.Show(ex.Message);
}
当我运行此代码时,我收到以下错误:
"发送电子邮件失败"。
当我将端口更改为587时,我有以下内容:
" SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应是:5.5.1身份验证需要"。
那为什么我不能发送电子邮件?有人可以解释一下吗?
我已将端口更改为25并已从hotmail发送邮件(我已更换" smtp.gmail.com"使用" smtp.live.com"),而不是来自gmail。它有效。似乎gmail有问题。
答案 0 :(得分:0)
首先将端口更改为25。
此外,client.Credentials
的参数应该是您登录的用户名和密码。例如......
client.Credentials = new System.Net.NetworkCredential("abc@gmail.com", "mypassword");
答案 1 :(得分:0)
我能够通过添加以下三行并在gmail帐户设置中进行更改来使代码正常工作:
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential (from, password);
除了上述更改之外,您还需要更新您的Google帐户设置并允许安全性较低的应用。
我在这个帖子中了解到了这一点:Sending email in .NET through Gmail
希望这有帮助。
答案 2 :(得分:-1)
我遇到了同样的问题。能够通过禁用此安全设置来修复它:
转到此链接并启用“访问不太安全的应用”