代码之家  ›  专栏  ›  技术社区  ›  Dave Mateer

ASP.NET电子邮件模式

  •  2
  • Dave Mateer  · 技术社区  · 14 年前

    问题

    应用程序的许多部分都需要它。这将包括HTML电子邮件,解决方案如何处理反弹等。。

    我可以选择使用自己的SMTP服务器(应用程序托管在VPS上),或者使用托管提供程序。

    我也想在这里开始登录(可能是log4net)

    对库使用/实现模式有什么建议吗?

    编辑: http://martinnormark.com/2010/03/13/generate-html-e-mail-body-in-c-using-templates

    asp.net net.mail - route all emails to a different email address in debug mode

    3 回复  |  直到 7 年前
        1
  •  2
  •   Community datashaman    7 年前

    用于使用伪造的SMTP服务器进行测试 ndumbster . Phil Haack有一篇关于用法的博客文章- http://haacked.com/archive/2006/05/30/ATestingMailServerForUnitTestingEmailFunctionality.aspx

    正如你所指出的,电子邮件模板非常棒。考虑为HTML和纯文本创建一个模板。确保你的HTML电子邮件模板使用基本的HTML作为电子邮件客户端的数量没有达到现代浏览器的标准(例如,Outlook使用Word HTML呈现引擎)。

    Log4Net是从日志开始的一个好地方。您还可以使用System.Diagnostics进行简单的跟踪和调试,这些跟踪和调试可以轻松地写入事件日志或文件。我总是喜欢为所有日志设置一个包装器,这样,如果您发现以后因为必须具备的特性而想将日志框架交换出去,就可以很容易地将它们交换出去。从可测试性的角度来看,它也很好,因为您可以轻松地模拟它。

    实际上,只要你没有被列入黑名单,使用哪个SMTP服务器并不重要。请确保检查SMTP服务器IP与 DNSBL 所以你知道你的SMTP主机是否有坏名声。我强烈建议使用Barracuda Central的IP声誉进行检查- http://www.barracudacentral.org/lookups grey listing .

    对于回退,您可以设置一个POP帐户,以便将其发送回,这可以很简单,只要阅读电子邮件并找到拒绝来自哪个电子邮件帐户以及前一封电子邮件的主题(应该是唯一的),以便您可以稍后再发送或在多次回退后将其从列表中删除。要实现读POP,请看一下这个线程- Reading Email using Pop3 in C#

        2
  •  1
  •   jwsample    14 年前

    您可以实现的最佳模式是不直接从您的web应用程序发送电子邮件,以避免将来的麻烦。相反,将电子邮件(或生成电子邮件所需的信息)写入数据库,并使用单独的流程进行邮寄。

    考虑一下当您的smtp服务器关闭并且您的应用程序尝试发送邮件时会发生什么情况。如果您有一个单独的过程发送电子邮件,您可以发送电子邮件后,当其备份。

    如果您正在使用反弹,那么让这个过程也处理这个问题。现在,您可以将返回的电子邮件地址记录到黑名单中,并针对每个传出的电子邮件检查相同的列表。你不可能想把这些都放到你的网络应用里。

    不管你想到了什么,请考虑只写电子邮件发送到数据库,让你的应用程序去做它的业务。你仍然可以让消息以近乎实时的方式传递出去,但是你可以用很少的努力就可以很好地分离关注点。

        3
  •  0
  •   Ben Griswold    14 年前

    hMailServer 是Microsoft Windows的免费电子邮件服务器。它支持常见的电子邮件协议(IMAP、SMTP和POP3),并且可以轻松地与许多现有的web邮件系统集成。它有灵活的得分为基础的垃圾邮件保护,可以附加到您的病毒扫描仪扫描所有传入和传出的电子邮件。绝对值得一看。

    .NET MailMessage, LinkedResources, AlternateViews and Exceptions