C# 通过GMail发送电子邮件:连接尝试失败,因为连接方没有正确响应

C# 通过GMail发送电子邮件:连接尝试失败,因为连接方没有正确响应,c#,email,smtp,C#,Email,Smtp,我正在使用和在c#控制台应用程序上创建简单的电子邮件发送应用程序。但我在gmail上发送邮件时出错了 {“连接尝试失败,因为连接方没有 在一段时间后或建立连接后正确响应 失败,因为连接的主机未能响应XXX“} 这是我的密码: class Program { private static string to = "XXX@gmail.com"; private static string from = "XXX@gmail.com"; pri

我正在使用和在c#控制台应用程序上创建简单的电子邮件发送应用程序。但我在gmail上发送邮件时出错了

{“连接尝试失败,因为连接方没有 在一段时间后或建立连接后正确响应 失败,因为连接的主机未能响应XXX“}

这是我的密码:

class Program
    {
        private static string to = "XXX@gmail.com";
        private static string from = "XXX@gmail.com";
        private static string subject="07/10/14";
        private static string body;
        private static string address = "XXX@gmail.com";
        static void Main(string[] args)
        {

            MailMessage mail = new MailMessage();
            mail.To.Add(to);
            mail.From = new MailAddress(from);
            mail.Subject = subject;
            mail.Body = body;
            mail.IsBodyHtml = true;
            SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
            smtp.EnableSsl = true;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials =
                 new System.Net.NetworkCredential(address, "YYYYY");
            smtp.Send(mail);
            Console.WriteLine("Sent");
            Console.ReadLine();
        }


}
我的App.Config文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
  </appSettings>
  <system.net>
    <mailSettings>
      <smtp from="XXX@gmail.com">
        <network defaultCredentials="false"
        userName="XXX@gmail.com"
           password="YYYYY"
        host="smtp.gmail.com" port="587" enableSsl="true"/>
      </smtp>
    </mailSettings>

  </system.net>
</configuration>

我读过类似的文章。一些人建议将url转换为流。我没有得到它。一些人说问题可能在internet连接中。其他人说将smtp服务器设置为587。我已经应用了所有更改。仍然显示相同的错误


请建议我已经解决了这个问题

只需使用您的托管公司Smtp和端口..而不是gmail或其他..如果您是从托管公司发送的..请咨询您的IT部门以提供您的公司Smtp地址和端口..我做到了..解决了问题

这是我的工作代码。它还通过公司SMTP发送到gmail

class Program
    {
        private static string to = "XXXXr@youHostingComapny.com";
        private static string from = "YYYYY@youHostingComapny.com";
        private static string subject = "test Mail sent By Code";
        private static string body = "Mail sent By Code";

        static void Main(string[] args)
        {
            try
            {

                MailMessage mail = null;

                using (mail = new MailMessage(new MailAddress(from), new MailAddress(to)))
                {

                    mail.Subject = subject;
                    mail.Body = body;
                    mail.To.Add("ZZZZZZZZ@gmail.com");

                    SmtpClient smtpMail = null;
                    using (smtpMail = new SmtpClient("HostingComapny smtp Address"))
                    {
                        smtpMail.Port = Hosting Company Port No.;
                        smtpMail.EnableSsl = false;
                        smtpMail.Credentials = new NetworkCredential("youruserName", "yourPassword");

                        smtpMail.UseDefaultCredentials = false;
                        // and then send the mail
                        ServicePointManager.ServerCertificateValidationCallback =
    delegate(object s, X509Certificate certificate,
             X509Chain chain, SslPolicyErrors sslPolicyErrors)
    { return true; };
                        smtpMail.Send(mail);
                        Console.WriteLine("sent");
                        Console.ReadLine();

                    }

                }

            }
            catch (Exception ex)
            {

                throw ex;
            }

        }


    }

你试过以下方法吗<代码>mail.To.Add(新邮件地址(“XXX@gmail.com"));可能是防火墙问题?我添加了mail.To.Add(新邮件地址(“XXX@gmail.com")); ...仍然不工作…@DGibbs它不在我的系统上…可能在公司网关上…在这种情况下可以做什么我的最后一个想法是在使用ssl时尝试端口465。还有一点可能很有趣:你应该能够将此标记为可接受的答案(通常在你可以这样做之前有一个时间限制),这比将问题更改为“已解决…”要好