2014-08-28 236 views
0

简单地说,我想在我的mvc aspnet应用程序中发送一封电子邮件。我下面的操作方法:无法连接到远程服务器,

SmtpClient mailClient = new SmtpClient("127.0.0.1"); 
NetworkCredential cred = new NetworkCredential("my mail address", "my password"); 
mailClient.Credentials = cred; 
MailMessage contact = new MailMessage(); 
contact.From = new MailAddress("my mail address"); 
contact.Subject = "Subject"; 
contact.IsBodyHtml = true; 
contact.Body = "Body"; 
mailClient.EnableSsl = true; 
contact.To.Add("someone's mail address"); 
mailClient.Send(contact); 

但当我尝试这个,我得到了这样的错误:

System.Net.Mail.SmtpException:{“发送邮件失败”}

内部异常:{“无法连接到远程服务器”}

我搜索了类似的解决方案,但他们说你需要设置凭据,但我确定我正确设置了凭据。此外,Windows防火墙已关闭。 在此先感谢。

+2

明显的问题 - 你运行在本地计算机上的SMTP服务器? – 2014-08-28 08:18:03

+1

明显的问题2.0 - 你允许连接SMTP端口(25或2525或587)吗?连接可能被防火墙或SMTP服务器本身阻止。另外,你使用的是哪个端口?这是正确的吗? – mg30rg 2014-08-28 08:26:16

回答

1

不好意思说出来,但你的例外已经非常明显了!

它似乎是你在非SMTP服务器上尝试它。设置一个,它应该工作。

=>System.Net.Mail.SmtpException : {"Failure sending mail."}

否则只是检查您的网络连接/ premission到服务器。

=>Inner Exception : {"Unable to connect to the remote server"}

+0

它(例外消息)并不一定意味着他没有设置SMTP服务器。它**可能意味着他尝试使用的SMTP端口被某些软件(例如防火墙)阻止。这也可能意味着smtp服务器不在默认端口(25)上侦听。明智的解决方案将尝试通过telnet连接以测试连接是否可用。 – mg30rg 2014-08-28 08:34:13

+0

以及我没想过试图通过telnet连接......但它也没有像你说的端口(25)! – user31911 2014-08-28 09:03:03

+2

我已经禁用了ssl并设置了根目录587,现在它的工作原理非常感谢:) – melomg 2014-08-28 16:00:49