BooProd.BMail - 发送动态生成的电子邮件
此程序包将帮助您发送各种电子邮件,例如帐户创建、订单、邮件、报告……所有包含动态字段的内容。您可以配置自己的 SMTP 服务器,使用通知,并添加附件。
引言
本文的目的是帮助您发送动态生成的电子邮件。电子邮件正文可以使用文本文件或 URL 设置,并且包含一个特殊的动态字段,一个BMAIL 标签,可以在发送电子邮件之前在运行时进行替换。此程序包将帮助您发送各种电子邮件,例如帐户创建、订单、邮件、报告……所有包含动态字段的内容。您可以配置自己的 SMTP 服务器,使用通知,并添加附件。
如何动态设置电子邮件正文?
请注意,您可以设置两种电子邮件正文:文本和 HTML。电子邮件正文可以通过多种方式设置。最简单的方法是使用 string
作为 setBodyAsText
或 setBodyAsHTML
方法的参数直接设置正文。但是,当正文变长时,在代码中维护大量文本或 HTML 并不容易。因此,一种自然的方法是使用一个包含电子邮件正文的外部文件。您可以使用 setBodyFromFile
的路径作为参数来实现这一点。最后一种方法(但同样重要)是使用 URL 作为 setBodyFromURL
的参数。这非常强大,因为 URL 可以是服务器上的简单 HTML 文件,甚至是 ASP 文件。例如,您可以为同一封电子邮件使用不同版本以实现本地化。
什么是动态字段?
动态字段是一个特殊标签,将在发送电子邮件之前被替换为相应的值。因此,您可以使用您喜欢的 HTML 编辑器创建电子邮件模板,并在任何您想使用动态(依赖于运行时)值的地方插入一个名为BMAIL 的特殊标签。然后,您可以使用 BMail
的三个替换方法之一来动态替换 BMAIL 的 HTML 代码部分。请注意,BMAIL 标签也可以用于纯文本电子邮件。
背景
使用此程序包不需要后台支持,但您可能会遇到的主要问题是您的电子邮件服务器。IIS SMTP 虚拟服务器是一个开放中继服务器,可以自动发送您的电子邮件,但风险是您的通信方的 SMTP 服务器会拒绝该电子邮件;因为您的 SMTP 中继是开放的或非官方的(DNS 区域中没有 MX 声明)。因此,您可以使用您的互联网提供商提供的官方 SMTP 帐户。
安装
下载 Zip 文件并将其解压到您的 'c:\temp' 文件夹。该解决方案是用 VS.NET 2003 v7.1.3088 和 .NET Framework v1.1.4322 SP1 创建的。
另请参阅
您可以参考我的文章“BooProd.Core - Context Sensitive URL”,该文章涉及上下文敏感的 URL 生成。如果您需要根据执行上下文替换 URL,此程序包将很有用。
使用代码
简单用法
这是创建电子邮件的一种简单方法
BMail vBMail= new BMail();
vBMail.From= "myEMail@xx.com";
vBMail.To= "myFriend@yy.com";
vBMail.Subject= "The subject";
vBMail.setBodyAsText("Hello, this is an EMail");
如果您的主机无法直接发送电子邮件或未被您的 SMTP 中继服务器信任,请像使用 Outlook 一样向您的 SMTP 服务器进行身份验证
vBMail.SMTPAutenticate= BMail.SMTP_AUTH_BASIC;
vBMail.SMTPServer= "smtp.myprovider.com";
vBMail.SMTPUserName= "myLogin";
vBMail.SMTPPassword= "myPassword";
然后发送电子邮件
vBMail.send();
高级用法
使用此程序包的最佳方法是动态设置电子邮件正文,然后动态替换电子邮件的各个部分。
/// The 'true' parameter indicates that the file is an HTML file
vBMail.setBodyFromFile("EMailTemplate.html", true);
/// Replace 3 BMAIL Tag inside the HTML file
vBMail.replaceFrom("name", "John");
vBMail.replaceFrom("number", "1234");
vBMail.replaceFrom("year", DateTime.Now.Year.ToString());
演示项目
提供了一个演示应用程序:“BooProd.BMail.Tester”。每个步骤都使用了不同的颜色。
- 请输入“发件人”和“收件人”的有效电子邮件地址。如果您希望在“收件人”阅读电子邮件时收到通知,“发件人”会收到通知,请选中“通知”框。抄送和密送是可选的。提供了默认主题。在代码中,您可以为每个条目提供多个电子邮件地址。
- 加载电子邮件正文。提供了一个默认正文,其中包含三个 BMail 标签。这些标签将使用组合框中的三种方法之一动态替换。在代码中,您可以使用文本文件、HTML 文件或源 URL 设置自己的电子邮件正文。
- 输入您的互联网提供商提供的 SMTP 服务器信息。如果未提供,则您的主机上必须有一个本地 SMTP 服务器(例如 IIS 内置的)。此主机必须被授权为您的 SMTP 中继服务器。
- 如果需要,您可以设置附件文件。
- 现在您可以预览电子邮件并发送它。
尽情享用!
关注点
- 首先,也许您并不真正理解为什么要使用专用的电子邮件程序包?我的感觉是,在一个团队中工作时,每个人都必须遵循相同的开发规则。所以,这是一种实现方法。
- 此程序包可以用作任何动态电子邮件生成的坚实基础。
- 我将本文献给 BabyKat 和 Sirteen,她们现在可以生成电子邮件而不必玩吃豆人(内部笑话)。
历史
- v1.0 - 2005/01/02: 首个版本。
- 2011/08/22: 使用 VS2010、FrameWork 4.0 编译的版本。仍可运行,但有一些过时的调用!