无法通过Google SMTP发送邮件

我还在收到“发送邮件失败”。 例外。 内部exception是“无法连接到远程服务器”,内部exception是“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应”。 我很确定这不是防火墙设置的原因。 有谁知道我能做些什么呢? 谢谢。

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); } 

以下是所需的Google设置:

  • 传入邮件(POP3)服务器 – 需要SSL:pop.gmail.com

    使用SSL:是的

    港口:995

    发送邮件(SMTP)服务器 – 需要TLS3或SSL:smtp.gmail.com(使用身份validation)

    使用身份validation:是的

    TLS / STARTTLS的端口:587

    SSL端口:465

    帐户名称:您的完整电子邮件地址(包括@ gmail.com或@ your_domain.com)

    电子邮件地址:您的电子邮件地址(username@gmail.com或username@your_domain.com)

    密码:您的Gmail密码

我不认为465是正确的端口。 你试过587吗? 而SMTP服务器是smtp.gmail.com

我也在使用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); 

如果主机名是正确的并且谷歌支持SMTP over SSL,那么它会被某些东西阻止,我会开始检查防火墙。

我不认为smtp.google.com是gmail的正确服务器。 你在25号端口尝试过smtp.gmail.com吗?

端口465用于通过SSL的SMTP,.NET SmtpClient不支持。 而是使用端口25. SMTP客户端将使用STARTTLSfunction来加密通信。

对于smtpclient类,正确的端口是587