【问题标题】:Failure sending mail via Google SMTP通过 Google SMTP 发送邮件失败
【发布时间】:2011-12-10 01:17:02
【问题描述】:

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

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

【问题讨论】:

    标签: c# sendmail


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 是的,它应该是端口 587。它现在工作正常。谢谢。
        【解决方案4】:

        这是所需的 Google 设置:

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

          使用 SSL:是

          端口:995

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

          使用身份验证:是

          TLS/STARTTLS 端口:587

          SSL 端口:465

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

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

          密码:您的 Gmail 密码

        【讨论】:

        • 是的,它应该是端口 587。它现在工作正常。谢谢。
        【解决方案5】:

        smtpclient 类的正确端口是 587

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-07-12
            • 2015-08-27
            • 2016-10-30
            • 2014-10-26
            • 1970-01-01
            • 2017-02-09
            • 2014-03-05
            • 1970-01-01
            相关资源
            最近更新 更多