C# 通过Google SMTP发送邮件失败

C# 通过Google SMTP发送邮件失败,c#,sendmail,C#,Sendmail,我仍然收到“发送邮件失败”异常。内部异常是“无法连接到远程服务器”,内部异常是“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应”。我很确定造成这种情况的原因不是防火墙设置。有人知道我能做什么吗?谢谢 var mail = new MailMessage("username@gmail.com", "destination@gmail.cz") {

我仍然收到“发送邮件失败”异常。内部异常是“无法连接到远程服务器”,内部异常是“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应”。我很确定造成这种情况的原因不是防火墙设置。有人知道我能做什么吗?谢谢

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支持SSL上的SMTP,那么它会被某些东西阻止,我会开始检查防火墙。

我认为SMTP.google.com不是gmail的合适服务器。您在端口25上尝试过smtp.gmail.com吗


端口465用于通过SSL的SMTP,.NET SmtpClient不支持SSL。而是使用端口25。SMTP客户端将使用STARTTLS功能对通信进行加密。

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

以下是谷歌需要的设置:

  • 接收邮件(POP3)服务器-需要SSL:pop.gmail.com

    使用SSL:是

    港口:995

    发送邮件(SMTP)服务器-需要TLS3或SSL:SMTP.gmail.com (使用身份验证)

    使用身份验证:是

    TLS/STARTTLS的端口:587

    SSL端口:465

    账户名称:您的完整电子邮件地址(包括@gmail.com或 @你的域名(www.com.cn)

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

    密码:你的Gmail密码


smtpclient类的正确端口是587

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

是的,应该是587端口。现在很好用。谢谢。是的,应该是587端口。现在很好用。谢谢