Farseer

导航

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


接下来我创建了MailMessage的实例,以便能发送html格式的邮件,MailMessage类在System.Web.Mail这个命名空间下,接下来的事情就很简单了,只是给必须赋值的From,To,“Subject”等属性赋值,定义BodyFormat属性为html。

接下来我准备创建信息---如果你愿意,是邮件的主体---本身。我用了System.Text下的StringBuilder。StringBuilder针对字符串连接作了性能优化,所以在这里是最佳选择。我创建了一个名为MailBody的StringBuilder的实例,并用它的Append方法把邮件的信息加到其上。注意也包含了UserData类(译注:应该是Object,对象)的属性UserData.Username和UserData.Password在我的MailBody类(StringBuilder类型)(译注:应该是Object,对象).

然后将我的StringBuilder类的内容转换成string类型并且赋值给一个string变量,这样我就能发送Mail了。接下来我指定了发送邮件的地址(SMTP服务器),以便来发送信息。

在后台文件SimpleHtmlEmail.aspx.cs里,我创建了SimpleHtmlEmailCS的实例,并调用SendSimpleHtmlEmail方法,我将这些代码放在try catch代码块中,以便能向用户提供一些反馈信息。

private void SendHtmlEmailMessage() 

    
try 
    

        HtmlEmailCS.SimpleHtmlEmailCS MailMessage 
= new HtmlEmailCS.SimpleHtmlEmailCS(); 
        MailMessage.SendSimpleHtmlEmail(TextboxEmailAddress.Text); 
        LabelMessage.Text 
= “A mail has been sent to the e-mail address you specified.”; 
    }
 
    
catch (Exception ex) 
    

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



上面的方法有个与代码清晰相关的缺点:如果有大量的html代码要加到你的StringBuilder对象上,就会变得乱七八糟。让我们来看一下:表现层的代码和事务层的代码纠缠在一起看上去不那么妙。下面的一段提供了一个可行的解决方案,在那里代码是分离的。

用用户控件创建Html邮件

在你的程序中可以部署用户控件是asp.net作为一个web程序的开发平台的众多优点中的一个。用户控件在保持代码分离的同时,提供了封装的方式。另外它们是具有属性,事件等的一流.Net成员(citizens)。最好的是在这种场景下:你可以用它们发送Html格式的邮件。
 
最终的邮件所包含的信息将和本文前部分提到的邮件内容一样。真正不同是信息的外观。这就是邮件的样子,假定邮件是一个名为 “ABC Books”的在线书籍转售商发送的。





这里应该注意的最重要的事情是,我的设计是基于包含大量<tr>行的html<table>。我尽量给出专业的外观,包含头,正文,页脚等部分。让我们继续,开发部署了用户控件的解决方案。

posted on 2005-03-27 15:23  佛西亚  阅读(660)  评论(0编辑  收藏  举报