使用SmtpClient未将电子邮件发送到某些电子邮件地址

时间:2009-06-06 18:59:24

标签: c# .net smtpclient

我为客户端创建了一个简单的asp.net电子邮件表单,它使用SmtpClient类发送电子邮件。它非常基础,适用于大多数情况。

该表单在许多网站中使用,但它只是间歇性地工作。代码总是有效并且不会抛出任何异常,它只是正常工作但间歇性地工作,对于某些客户端,电子邮件永远不会到达To地址。如果更改了外部电子邮件(例如我的个人Hotmail帐户),它可以正常工作。

我们已要求收件人检查他们的垃圾邮件收件箱,但无济于事。如何才能跟踪这个问题?我怎么知道我的客户asp.net服务器已经发送了电子邮件(在这种情况下问题是在收件人端)或不是?

4 个答案:

答案 0 :(得分:0)

查看您在Hotmail帐户中收到的电子邮件中的标题,并查看From:Reply-To:字段的设置。

然后查看您的源代码,与您要求设置的内容进行比较。

您可能会收到来自SMTP服务器(您或其他人到达目的地的路径)的退回邮件,并且可能会将其发送到电子邮件的发件人:地址。

检查您是否拥有处理异常的代码,使用不正确的详细信息进行测试并查看StatusCode返回的内容。

答案 1 :(得分:0)

您是否可以控制SMTP服务器,因此您可以访问其日志并查看其中的内容?

如果没有,您可以设置一个可以控制的SMTP服务器,它只是将电子邮件传递给真实服务器,但会记录。

您是否将发件人地址设置为有效的内容,以便查看是否有任何失败邮件回来?

没有答案,我很害怕,但也许问题会给你一些可能有帮助的想法。

答案 2 :(得分:0)

如果您的客户端使用Exchange服务器,则可以使用邮件跟踪查看邮件发生的情况。如果他们使用内置的IIS SMTP服务器,您可以启用日志记录以查看正在发生的情况。与上面提到的第一篇文章一样,检查邮件标题并确保它们有效...

答案 3 :(得分:0)

您是否可以访问属于From:地址的邮箱。任何送货错误都将发送到该地址。

如果发件人地址不存在,那么这可能是邮件未送达的原因。某些邮件服务器检查是否存在来自地址,以阻止某些垃圾邮件。