在C#中通过Gmail SMTP发送Net.Mail时出现套接字错误10013

时间:2016-03-31 07:25:10

标签: c# sockets email smtp gmail

我试图通过GMail SMTP服务器使用C#(.NET Framework 4.5)和System.Net.Mail类发送电子邮件,但我总是得到一个

  

System.Net.Mail.SmtpException" 发送邮件失败。",

有一个内部的System.Web.Exception

  

" 无法连接到远程服务器",它也有一个内部   System.Net.Sockets.SocketException" 试图访问a   套接字以其访问权限禁止的方式   74.125.113.109:587" (套接字错误代码= 10013)。

我从StackOverflow和其他论坛上阅读了很多关于通过GMail发送电子邮件的其他问题和答案,包括GMail SMTP信息页面。我还使用TCPVIEW实用程序来检查另一个应用程序是否已打开相同的远程地址和端口,并且我使用管理权限执行了我的应用程序,并且我也关闭了我的Outlook客户端......我无法解决问题。

你能帮帮我吗?

我写的代码是:

try 
{           
    using (SmtpClient servidor = new SmtpClient())
    {
        if (servidor == null)
            return false;

        servidor.Host = "smtp.gmail.com";
        servidor.Port = 587;
        servidor.EnableSsl = true;
        servidor.UseDefaultCredentials = false;
        servidor.Credentials = new System.Net.NetworkCredential("miUser@gmail.com", "miPassword");

        using (MailMessage mail = new MailMessage())
        {
            if (mail == null)
                return false;

            String de = "miUser@gmail.com";
            mail.From = new MailAddress(de);

            String para = "toMailAddress@xxxx.yyy";
            mail.To.Add(para);

            mail.Subject = "Mail subject";
            mail.SubjectEncoding = System.Text.Encoding.UTF8;

            mail.Body = "Mail body";
            mail.BodyEncoding = System.Text.Encoding.UTF8;
            mail.IsBodyHtml = false;

            mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

            try
            {
                servidor.Send(mail);

                // Alternatively I tried this:
                // servidor.Send(de, para, mail.Subject, mail.Body);

                return true;
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}
catch (Exception mex)
{
    return false;
}

非常感谢。

0 个答案:

没有答案