使用本地计算机上的Gmail帐户发送电子邮件

问题描述:

我正在使用Gmail在我的asp.net应用程序中发送电子邮件。电子邮件工作正常,如果我在服务器上发送电子邮件,但如果我尝试在本地机器上发送电子邮件,它会给出错我在代码中放置了断点,当调用send方法时,它显示带有标题“Smtp异常未被用户代码处理”的错误框,详细地说它是“发送邮件的邮件”。使用本地计算机上的Gmail帐户发送电子邮件

如果我继续在浏览器中就说明这些细节错误页面:

一个现有的连接被强行远程主机关闭说明:当前Web请求的执行过程中发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:System.Net.Sockets.SocketException:一个现有的连接被强行远程主机

下面是我的代码关闭,请指导我。

谢谢。

protected void btnConfirm_Click(object sender, EventArgs e) 
{ 
    string _Message = GetAdminEmailMessage();   

    MailMessage message = new MailMessage(); 
    SmtpClient smtp = new SmtpClient(); 
    NetworkCredential mailAuthentication = new NetworkCredential("[email protected]", "mypassword"); 
    message.To.Add(new MailAddress("[email protected]")); 
    message.From = new MailAddress("[email protected]"); 
    message.IsBodyHtml = true; 
    message.Subject = "Local test email"; 
    message.Body = _Message; 
    smtp.UseDefaultCredentials = false; 
    smtp.EnableSsl = true; 
    smtp.Port = 587; 
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
    smtp.Host = "smtp.gmail.com"; 
    smtp.Credentials = mailAuthentication; 
    smtp.Send(message); 

} 
+1

端口屏蔽了?或者你的IP被gmail*了?我会检查我可以从Outlook或类似的设置进行连接,然后再进一步排除故障 – StefanE 2011-01-14 11:15:44

+0

StefanE我试图使用Outlook连接到gmail和follwoign错误,我很抱歉,我没有得到它可以üplz adice。与服务器的连接失败。帐户:'smtp.gmail.com',服务器:'smtp.gmail.com',协议:POP3,端口:110,安全(SSL):否,套接字错误:10060,错误编号:0x800CCC0E – haansi 2011-01-14 11:43:58

错误代码0x800CCC0E表示端口被屏蔽:http://support.microsoft.com/kb/191687

尝试的telnet smtp.gmail.com 587 - 你能连接?

如果你的端口是畅通的,你的凭据是正确的,那么在这个问题上接受的答案代码应该工作..

Sending email through Gmail SMTP server with C#

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Net.Mail; 
using System.Net; 

namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var client = new SmtpClient("smtp.gmail.com", 587) 
      { 
       Credentials = new NetworkCredential("[email protected]", "mypwd"), 
       EnableSsl = true 
      }; 
      client.Send("[email protected]", "[email protected]", "test", "testbody"); 
      Console.WriteLine("Sent"); 
      Console.ReadLine(); 
     } 
    } 
}