【发布时间】:2011-12-19 00:41:06
【问题描述】:
我正在开发一个即将上线的 Web 应用程序,我现在正试图找出处理从该应用程序发送电子邮件的最佳方法。我完全了解如何使用 MailMessage 和 SmtpClient 类从应用程序发送电子邮件,但是我的问题来自不同的角度。在这个项目之前,我工作的主要目的是支持在我之前开发的旧应用程序。在这些应用程序中,当他们需要发送电子邮件时,他们会将任何消息硬编码到实际消息中,并将所有 HTML 标记直接嵌入到 C# 代码中。
我正在开发的应用程序将有一个用于发送电子邮件的模板,作为一种样式容器,并且不同的消息将嵌入到模板的主要内容 div 中。我想避免在这个应用程序中对这些模板进行硬编码,所以我一直在尝试找出布局我的项目的最佳方式。我曾想过使用 t4 模板,并将不同的 t4 读入应用程序,并应用具有指定参数的 String.Format 以将名称/电子邮件添加到要发送的消息中。但是,我不确定这是不是最好的方法。
我的另一个想法是为每种类型的消息定义一个类,但这最终会再次硬编码消息,正如我所说的我不想这样做。
我的问题是,您过去是如何处理这个问题的?什么有效,什么无效,出于什么原因?我在网上查遍了所有内容,但要么只有关于如何发送消息的内容,要么我没有使用正确的 Google 强力词。
【问题讨论】:
-
到目前为止,关于聊天代码,您自己尝试过什么,以便在线的人可以看到并可能帮助您..?取决于您真正在寻找什么发送电子邮件不是一项艰巨的任务,因为.NET 为您提供了许多使用 System.Net.Mail 或通过 Web 应用程序使用 System.Web.Mail 的选项,还有很多以前的示例你可以在这个网站上搜索和研究,或者查看 codeproject.com 很多很好的例子
-
主要是所有的代码都在我的脑海中。在我花大量时间编写代码之前,我想先了解一下最好的方法。我已经尝试研究这个几个小时了。我不需要手牵手怎么做,只需要知道应该做什么。到目前为止我提出的想法都在我的问题中,但正如我所说,我不确定这是解决问题的最佳方法。
-
您可以访问数据库吗?您可以将每种类型的消息、收件人、主题、正文等存储在数据库中,并在此基础上构建一个简单的维护例程。您还可以在电子邮件正文中输入各种标签以充当其他文本(如用户名)的占位符。我以前做过,效果还不错。
-
应用程序确实有一个数据库,这是我实际上考虑过的事情之一。起初我对这样做有点谨慎,因为我不确定消息是否应该存储在数据库中,但是可以随时更新消息绝对是一个专业人士。收件人当前也存储在数据库中。感谢您的意见,既然我知道其他人做得很好,我肯定会更多地考虑它。我仍然想知道是否有更好的方法。
标签: c# asp.net-mvc email architecture t4