web-services - 无法从远程服务器 System.Net. Mail.SmtpException 发送邮件: 发送邮件失败

  显示原文与译文双语对照的内容

我。了,我正在试两天。 我正在尝试创建一个用于发送电子邮件的网络服务。 代码正在处理本地机器。 但是,当我将它连接到主机远程服务器时,它就会引发异常:


System.Net.Mail.SmtpException: Failure sending mail. ---> System.Net.WebException: Unable
to connect to the remote server ---> System.Net.Sockets.SocketException: A connection 
attempt failed because the connected party did not properly respond after a period of 
 time, or established connection failed because connected host has
 failed to respond xx.xxx.129.108:587

这是我的邮件类别:


 public static void SendMail(string recipient, string subject, string body, string attachmentFilename, string username, string password, string smtpServer, int smtpPort)
 {
 SmtpClient smtpClient = new SmtpClient();
 NetworkCredential basicCredential = new NetworkCredential(username, password);
 MailMessage message = new MailMessage();
 MailAddress fromAddress = new MailAddress(username);

//setup up the host, increase the timeout to 5 minutes
 smtpClient.Host = smtpServer;
 smtpClient.Port = smtpPort;
 smtpClient.UseDefaultCredentials = false;
 smtpClient.Credentials = basicCredential;
 smtpClient.EnableSsl = true;
 smtpClient.Timeout = (60 * 5 * 1000);

 message.From = fromAddress;
 message.Subject = subject;
 message.IsBodyHtml = false;
 message.Body = body;
 message.To.Add(recipient);

 if (attachmentFilename!= null)
 message.Attachments.Add(new Attachment(attachmentFilename));

 smtpClient.Send(message);
 }

下面是调用SendMail方法的代码:


 [WebMethod]
 public string DenemeString(string name)
 {
 try
 {
 Mail.SendMail("yilmaz.xxx@gmail.com","example","example mail", null,"xxx@domain.com","xxxxpassxxxx","mail.domain.com.", 587);

 return"OK";
 }
 catch (Exception ex)
 {
 return"Not OK" + ex.ToString();
 throw;
 }
 }

GoDaddy是我的托管解决方案。 我在本地尝试了这个代码。 我确定smtp服务器已经启动。 我尝试使用 gmail smtp 。 这也不管用。

时间: 作者:

请检查你的ASP.NET 信任级别,以便。 表将有助于查看哪些权限对应于特定的信任级别。

在开发程序上测试时,你的应用程序。 如果你在共享服务器上,它很可能是 medium trust 。 发送电子邮件的含义是:你只能使用端口 25 请参见连接许可协议( ( 中等信任) ) 。

你可以通过更改本地 dev Web.Config 设置来检查这是否是问题,以便使用中间信任- 比如 <trust level="Medium"/>

hth 。


更新

我可以为我的应用程序提供完全信任?

你不能在( 你的) 网站/应用程序级别上设置托管服务器配置设置,否则,它将不具有任何点( 如果任何共享的服务器应用程序可以这样做) 。 其他的工作是在一些定制的配置上使用它们- sort类似于配置,不是真正的( 抱歉) 。

选择:

hth 。

作者:

我还为最后 1.5天疯狂地驾驶。 结果是,它最可能是导致错误的谷歌smtp服务器。 有些东西已经发生了变化,我已经在支持桌面上找到了Google应用程序,希望他们能找到东西。 目前,我已经注册了免费的smtp mandrillapp.com

...