【问题标题】:ASP.NET MVC How to determine if the e-mail didn't reach the receiverASP.NET MVC 如何确定电子邮件是否没有到达收件人
【发布时间】:2010-07-21 14:27:50
【问题描述】:

在我的 Web 应用程序中,会向每个新注册的用户发送一封包含凭据信息的电子邮件。

出于某种原因,Hotmail 和其他一些邮件提供商根本不接受这些电子邮件(顺便说一下,我通过 hMailServer 发送,也许你知道如何解决这个问题)——它们既不在垃圾邮件中,也不在收件箱文件夹。

所以用户离开页面,查看邮件却一无所获。他们必须使用单独的页面来发送另一封电子邮件,这并不酷。

那么如何检查邮件是否发送成功?

更新

我意识到没有办法做到这一点......

【问题讨论】:

    标签: asp.net-mvc email


    【解决方案1】:

    关于最佳实践(例如设置 SPF 记录)Jeff Atwood 有一篇很棒的帖子,请参阅:http://www.codinghorror.com/blog/2010/04/so-youd-like-to-send-some-email-through-code.html

    要检查电子邮件是否已发送,您只需在电子邮件中放置一张图片,该图片通过您的应用程序请求数据,从而记录用户打开电子邮件的事实。如果请求“/images/something.jpg?id={identify-the-user-and-message-here}”是通过您的应用程序路由的,您可以只注册用户已经看过电子邮件,然后返回图像,或者确实没什么。

    【讨论】:

    • 是的,谢谢你的链接,那个图片听起来是个好主意!我要试试。但是图像拦截器不会成为障碍吗?
    • @Alex:最终用户点击的确认链接也是一个选项;如果没有另一端的某种验证,就没有真正的方法来确保交付。
    • 是的,图像拦截器会立即阻止此操作,但是没有万无一失的可靠方法来检查是否收到了电子邮件。最好的办法是实现 Jeff 帖子中的内容,为消息提供尽可能好的机会,并为用户提供重新发送原始消息的简便方法。
    • @DanP,你是对的。而我刚刚意识到图像的东西不会以任何方式工作,因为用户会离开页面,检查邮件,却一无所获。同样的事情。
    【解决方案2】:

    听起来您在问是否有办法实时检查您的用户是否收到了消息。如果是这样,我建议你不要走这条路。虽然大多数时候电子邮件传递似乎是即时的,但在传递到收件人邮箱之前,它可能会延迟任意时间。

    【讨论】:

      【解决方案3】:

      除了已经发布的方法之外,我强烈推荐EmailVerify.NET 组件,它可以在您首先尝试发送之前对给定的电子邮件地址执行相当多级别的测试。

      【讨论】:

        猜你喜欢
        • 2014-07-15
        • 2010-09-16
        • 1970-01-01
        • 2017-05-03
        • 2014-09-01
        • 1970-01-01
        • 2016-08-06
        • 1970-01-01
        • 2018-06-01
        相关资源
        最近更新 更多