我有一个网站http://SomeDomain.com
。当我从任何计算机访问该域时,我都可以访问该网站。如果我然后转到同一个域,但从托管该网站的服务器,我将无法访问该网站。看起来好像防火墙不会启用连接。无法从同一服务器访问网站
我知道我可以从该服务器中访问http://localhost
以访问该网站。
不管怎么说的问题是,我无法从服务器我有以下代码发送电子邮件发送电子邮件:当我从任何一台计算机上运行代码
public static void SendEmail(string toEmailAddress, string subject, string body)
{
var fromAddress = new MailAddress("[email protected]", "domainName");
var toAddress = new MailAddress(toEmailAddress);
string fromPassword = "MY_PASSWORD";
var smtp = new SmtpClient
{
Host = "mail.toglcloud.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential("v040\\sales.domainName", fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
smtp.Send(message);
}
}
(我已经尝试了5对不同的那些) 有用!但是,如果我在服务器上运行精确的代码(计算机托管网站,并包含邮件服务器),它不起作用。我收到以下例外情况:
System.Net.Mail.SmtpException:发送邮件失败。 ---> System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:连接尝试失败 因为连接方在 时间段后没有正确响应,或建立的连接失败,因为连接的主机有 未能响应206.155.112.15:587在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, 套接字s4,套接字s6,套接字&套接字,IP地址&地址, ConnectSocketState状态,IAsyncResult asyncResult,Int32超时, 异常&除外)内部异常堆栈跟踪的 - 完 -
我认为这与同样的原因,为什么我找不到终点http://SomeDomain.com
Mayby在任何配置文件(我猜电子邮件程序服务器的配置)一行表示允许/阻止本地地址。 Mayby如果你改变它将修复... – Mathlight
此外,mayby [这个答案](http://stackoverflow.com/a/15181177/1846175)将帮助 – Mathlight
我创建了一个控制台应用程序,而不是网站,我得到同样的例外。一旦我使它在控制台应用程序上工作,我会将该代码放在网站上。 –