发送邮件时出错

时间:2011-08-16 12:46:06

标签: asp.net-mvc-3 sockets smtp sendmail socketexception

我在graficaromana.com.br

创建了一个简单的应用程序

在我尝试发送电子邮件时,在联系表单(http://graficaromana.com.br/Contato)中收到错误消息。 本地邮件正常发送,没有任何错误。

我必须在主机上做一些设置吗?在域名?

错误:

  

System.Net.Sockets.SocketException连接尝试失败,因为   一段时间后,关联方没有正确回复,   或已建立的连接失败,因为连接的主机失败   回复209.85.225.108:25

有关详细信息,请参阅代码:https://gist.github.com/1149028

1 个答案:

答案 0 :(得分:1)

看起来远程主机可能有一个单独的服务器用于发送邮件,或者您必须与主机列入白名单才能发送邮件,并且可能需要用户名和密码。没有看过你的代码,但我发现当涉及到防火墙并且尝试发送的机器无法通过防火墙访问时出现了类似的错误,因为防火墙根本没有响应,你得到的答案就像'服务器那样没有及时回复'或'服务器在一定时间后没有响应'我假设你在这里发布之前你已经要求托管服务提供商发送邮件,以及有什么优先考虑应该如何被执行?正确?

若是,请提供他们所说的内容的信息

以下是发送电子邮件的代码示例:

var smtpClient = new SmtpClient();
var message = new MailMessage();
smtpClient.port = 25;
message.from = "test@test.com";
message.To.Add("me@workemail.com,client@office.com";
message.Subject = "Contact from website";
message.IsBodyHtml = true;
message.Body = "<html><head></head><body>TEST</body></html>"

try { 
   smtpClient.Host = "relay.server.you.have.from.host";
   smtpClient.Send(message);
} catch( Exception ) {
   // host is down or we are local try other servers
   // here you can have more try / catch
   smtpClient.Host = "127.0.0.1"
   smtpClient.Send(message);
}