Farseer

导航

用Asp.net高效地发送Html格式的Email(六)

我的ParsedHtmlEmailCS文件包含了SendParsedTemplate方法,它已指定的邮箱地址为string类型的参数。它通过EmailDataCS (可以参照文章的前面部分获取详细信息)的实例获取认证信息。如果认证信息存在,我创建了HtmlTemplateParserCS的实例,并通过HttpContext.Current.Server.MapPath指定采用的html模板文件,它将返回我的模版文件所在的物理路径。接下来我指定字符和他们各自的值,接下来的事情就非常简单了:正如文章前面提到的,发送Mail。

让我们看一下后台代码,了解是如何发送Mail的。

private void SendParsedTemplate() 

    
try 
    

        HtmlEmailCS.ParsedHtmlEmailCS Message 
= new HtmlEmailCS.ParsedHtmlEmailCS(); 
        Message.SendParsedTemplate(Convert.ToString(TextboxEmailAddress.Text)); 
        LabelMessage.Text 
= “The requested information has been sent to the e-mail
            address specified.”; 
    }
 
    
catch (Exception ex) 
    

        LabelMessage.Text 
= ex.Message.ToString(); 
    }
 
}




创建ParsedHtmlEmailCS 的实例,并调用SendParsedTemplate 方法,它以邮件地址(在Web窗体的Text中指定)为参数。就这些了。

进一步的加强

很明显文章的内容还有很多是可以扩充的,特别是解释器部分。这里的解释器是非常小的,没有像产品系统应该做的那样加入扩展的错误检查,更进一步,解释器可以根据指定的需求,利用.Net 框架的OO能力进行扩展。

这篇文章所采用的例子,可以改进成根据不同用户的喜好发送个性化的邮件。

这边文章采用的例子,只展示了如何从数据库获取单一的值并且将数据包含在Html格式的Email中,但是在一些场景中,我们有可能存在这样的需求,在发送的消息中包含表列信息。这个方面没有在本文中论述。

因为这篇文章旨在介绍发送html格式邮件的各种方式,它不是与安全相关的最佳实践,比如加密密码,在发送邮件之前检查用户名等。

发送html格式邮件的其他途径
SQL Server 2000/2005的用户需要注意,SQL Server提供了“通知服务”(Notification Services)可以发送html格式的邮件。这是一中不同的方式,“SQL Server通知服务”是一个非常强大的特性,它可以实现用户我在本文中实现的类似功能。

应该注意的是,也可以用 XML/XSLT 发送html格式的邮件,这些技术在本文中没有涉及。

资源

  • MSDN Library: information on the MailMessage Class
  • MSDN Library: information on the StringBuilder Class
  • Scott Mitchell, a well-known ASP.NET MVP and author of numerous books and articles, wrote a very insightful article on User Controls: An Extensive Examination of User Controls
  • MSDN Library: information on the StringWriter Class and Html32TextWriter Class
  • MSDN Library: information on the StreamReader Class
  • The ASP.NET Community Starter Kit (CSK) provides built-in functionality to send HTML formatted e-mail to multiple users. You can download the application for free at http://www.asp.net/Default.aspx?tabindex=8&tabid=47

  • 结论

    在本文中,我讨论了如何在一个web应用中运用不同的方法生成html格式的邮件。解决方案从使用一个简单的StringBuilder附加邮件的内容到部署一个用户控件和使用解析器。部署用户控件可以使代码分离,模板解析器提供更大的程序扩展性。最后,作为一个开发者,你可以找到最适合你的商务场景的方法。

    posted on 2005-03-27 17:53  佛西亚  阅读(506)  评论(0编辑  收藏  举报