2012-02-06 46 views
3

今天早上我发现了SmtpClient类(.net 3.5)的一些奇怪行为。无法解释它是导致它的类还是SMTP服务器。SmtpClient UseDefaultCredentials属性的奇怪行为

下正在发生的事情:

  • 实例化SmtpClient与UseDefaultCredentials 真正和证书,没有邮件发送;
  • 使用UseDefaultCredentials实例化SmtpClient false和凭证以有效帐户,无邮件发送;
  • 使用UseDefaultCredentials实例化SmtpClient false和凭证null,邮件发送成功。

在前两种情况下,异常消息是:

邮箱无法使用。服务器响应为:5.7.1客户端不 有权限发送的该发件人”

问题:?

  • 我怎么能找出是什么原因造成这种现象
  • 任何方式在C#中解决方法吗?提前

谢谢!

+1

* from *字段与您的用户相匹配吗?也许smtp服务器正在期待那个? (另外,我希望服务器不接受来自外部的连接,因为看起来auth实际上并不需要) – 2012-02-06 10:58:56

+0

认为'from'用户与Credentials属性中的帐户不匹配(检查此... )。除此之外,如果没有提供证书,是不是很奇怪的邮件可以毫无例外地发送? – 2012-02-06 11:07:59

+0

这一切都取决于如何配置smtp服务器。我想说这是一个潜在的大问题,如果一个垃圾邮件发现者发现了这个服务器,它最终会被列入黑名单。 (除非它不接受来自外部的邮件。) – 2012-02-06 11:26:42

回答

5

这取决于如何SM TP服务器已配置,但在这种情况下,问题似乎是from地址与用于登录发送SMTP服务器的帐户不匹配。结果,中继被拒绝了。