我仍然收到“发送邮件失败”。例外。内部异常是“无法连接到远程服务器”,内部异常是“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应”。我很确定这不是防火墙设置的原因。有谁知道我能做些什么呢?感谢。
var mail = new MailMessage("username@gmail.com", "destination@gmail.cz")
{
Subject = "Testing subject",
Body = "Testing body"
};
try
{
var client = new SmtpClient("smtp.google.com", 465)
{
EnableSsl = true,
Credentials = new NetworkCredential("username@gmail.com", "password")
};
client.Send(mail);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
答案 0 :(得分:6)
以下是所需的Google设置:
传入邮件(POP3)服务器 - 需要SSL:pop.gmail.com
使用SSL:是
港口:995
外发邮件(SMTP)服务器 - 需要TLS3或SSL:smtp.gmail.com (使用身份验证)
使用身份验证:是
TLS / STARTTLS的端口:587
SSL端口:465
帐户名称:您的完整电子邮件地址(包括@ gmail.com或 @ your_domain.com)
电子邮件地址:您的电子邮件地址(username@gmail.com或 username@your_domain.com)
密码:您的Gmail密码
答案 1 :(得分:3)
我不认为465是正确的端口。你试过587吗? SMTP服务器为smtp.gmail.com
。
答案 2 :(得分:1)
我也在使用 Godaddy电子邮件服务器,以下代码对我来说很好:
<强>命名空间强>:
System.Net.Mail
============
string senderID = "myemailID@mydomain.com";
string senderPassword = "123456";
string body = " Test email ";
MailMessage mail = new MailMessage();
mail.To.Add(username);
//mail.CC.Add(_cc);
mail.From = new MailAddress(senderID);
mail.Priority = MailPriority.High;
mail.Subject = "Test Email";
mail.Body = body;
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "relay-hosting.secureserver.net"; //Or Your SMTP Server Address
smtp.Credentials = new System.Net.NetworkCredential
(senderID, senderPassword); // ***use valid credentials***
smtp.Port = 25;
smtp.EnableSsl = false;
smtp.Send(mail);
答案 3 :(得分:0)
如果主机名是正确的并且谷歌支持SMTP over SSL,那么它会被某些东西阻止,我会开始检查防火墙。
答案 4 :(得分:0)
我认为smtp.google.com不是gmail的正确服务器。你在端口25上试过smtp.gmail.com吗?
端口465用于通过SSL的SMTP,.NET SmtpClient不支持。而是使用端口25. SMTP客户端将使用STARTTLS功能加密通信。
答案 5 :(得分:0)
对于smtpclient类
,正确的端口是587