【问题标题】:Failure sending mail, the connected party did not properly respond发送邮件失败,连接方没有正确响应
【发布时间】:2015-01-06 11:30:51
【问题描述】:

在尝试从 C# 发送电子邮件时,我收到“发送邮件失败”。内部异常是“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应[ip地址]。”

这是我目前拥有的代码,尽管我尝试了很多变体都无济于事:

string To = "[my email]";
string From = "[my email]";
string Subject = "Test Email";
string Body = "Test email.";

MailMessage completeMessage = new MailMessage(From, To, Subject, Body);
SmtpClient client = new SmtpClient("smtp.microsoft.com", 25);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential("[my login]", "[my password]");
client.EnableSsl = true;

client.Send(completeMessage);

我在没有端口号、没有登录凭据和没有交付方法的情况下尝试过这个(主要基于我看到的类似问题的正确答案的其他版本),但我总是得到同样的例外。

更新:

根据 Ruskin 的建议,我使用自己的 gmail 帐户(基本上是我发给我的测试电子邮件)尝试了此操作。这是我在代码中得到的:

string To = "[my email]@gmail.com";
string From = "[my email]@gmail.com";
string Subject = "Test Email";
string Body = "With stuff in it.";

MailMessage completeMessage = new MailMessage(From, To, Subject, Body);
SmtpClient client = new SmtpClient("smtp.gmail.com", 25);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential("[login]", "[password]");
client.EnableSsl = false;

我收到的新消息是“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.7.0 必须先发出 STARTTLS 命令。i3sm38798124pdf.39 - gsmtp”。

更改此行后,我能够成功发送和接收电子邮件:

client.EnableSsl = true;

但是,切换回原始帐户凭据会导致与之前相同的错误。

【问题讨论】:

  • 鉴于您使用的所有详细信息都已更改,因此很难在此处诊断此类问题,您是否使用简单的 GMail 帐户尝试过上述代码?
  • @Ruskin:谢谢你的想法。我已经相应地更新了问题。

标签: c# email


【解决方案1】:

尝试使用 EnableSsl=false,因为您使用的是端口 25(即普通 SMTP):http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol#Ports

或使用正确的端口进行安全连接。

【讨论】:

  • 谢谢,但我遇到了同样的异常。
  • 如果您还没有这样做,我用来调试此类问题的方法之一是使用 Outlook(或等效)之类的工具来验证服务器是否正确,凭据是否有效,端口设置是否正确等。一旦完成此完整性检查,然后我确认代码中的设置。
  • 感谢您的想法。不过,我在 Outlook 中看到的信息与 SmtpClient 正在寻找的设置不匹配(除非我找错了位置)。例如,据我所知,没有端口号。有一个服务器值,但它是以@microsoft.com 结尾的一长串字符,就好像它是一个电子邮件地址一样。我之前曾尝试将其插入以替换 smtp.microsoft.com 值,但收到错误。
  • 如果是POP/SMTP账号,应该可以访问账号信息:help.1and1.com/e-mail-and-office-c37589/outlook-c85091/…
  • 要访问 Microsoft Exchange,请查看此 URL:support.office.com/en-US/Article/…
【解决方案2】:

按照this尝试您的Gmail设置,如果您仍然收到“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机已经未能响应 [IP 地址]。” 问题

【讨论】:

  • 谢谢,但实际上我已经收到了一封使用 gmail 的测试电子邮件,并且设置似乎与此处的设置相同(端口除外)。我尝试使用的原始电子邮件帐户仍然存在问题。
  • 我在使用 smtp.microsoft.com 方面找不到任何帮助,您从哪里提取这些设置?如果是交换邮件,设置有点不同,看这个链接stackoverflow.com/questions/6412162/…
  • 感谢您的链接,但我似乎找不到任何要为 Microsoft.Exchange.WebServices.Data 添加的引用,这使我无法尝试该答案。
猜你喜欢
  • 1970-01-01
  • 2019-03-18
  • 2014-11-01
  • 2014-08-03
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
相关资源
最近更新 更多