使用Nvelocity实现发送邮件功能(ASP.NET MVC2环境下)

来源:互联网 发布:kitti行人数据集 编辑:程序博客网 时间:2024/04/28 11:52

Nvelocity是一个原创于java平台,后被移植至.net平台的一个模板编辑引擎,引用Nvelocity.dll这个库文件,我们可以在原有的html模板上加载我们需要的信息,简单来讲就是可以将你需要的信息填充到html模板上。

 

这里我们需要实现发送邮件的功能,由于邮件内容可以填充html文件,我们首先准备一个html模板,这里我们假设存入Content文件下。

 

 

这里我们暂时不关注美刀符号以及相关的Nvelocity语法,将目光转回服务端。

 

在写代码之前,我们首先要引用 Nvelocity.dll这个库文件,然后进入controller文件。

 

现在我们来看下图片中的美刀符号,以及Nvelocity的语法,从图片中我们看到类似$order.Id、$order.Name这样的写法,其实$符号是Nvelociy调用代码的一个开始符号,这里的order是我们服务端的一个类,符号. 后面所代表的是order类里的属性,像Id,Name,Datetime

这些都是order类中所蕴含的属性,#号是命令符的开始标示,例如 #foreach($li in $order.LineItems) 这是一个枚举order类中LineItems集合的对象,值得注意的是每一个#foreach命令符都要跟一个#end作为循环的终止标记,其他的诸如#if逻辑需要配合#set使来用,例如:

#if($order.TotalPrice>150)

#set($fee="0")

#else($fee="15")

#end

$fee

这里假设当属性totalprice>150时将自定义变量置为0,不然则置为150,并显示。

 

 

我们就先写一个order类,并简单的写几个属性(Id,Name,Datetime)

 

 写完后我们对其进行赋值,以便测试功能。

 

 

当做完了这些准备工作,下面我们可以宏观的思考邮件的制作了,发过邮件的人都明白,发送邮件需要有几个要件,1.发送人的地址,2.接收人的地址,3.邮件的标题,4.邮件的内容。  填完这四个条件我们便可发送。

 

于是我们这里我们定义一个方法,将类的对象(邮件内容),发送的地址,接受的地址,邮件的标题,一起送进函数。

 public void CreateEmail(Order order,string mailfrom, string password, string mailto, string subject)

{

 

}

 

1.编辑邮件内容

其实难的只有制作内容的这个步骤,像标题、发送地址,接收地址都可以人为的进行设置。

当然其实使用Nvelocity引擎,自动的,会将模板与传入的对象进行合并,逻辑上制作完成了我们需要的邮件内容(html)

 

2.编辑邮件标题、发送地址、接收地址

编辑完了邮件的内容,其实接下来的事已经一马平川了,使用vs自带的 system.Net.Mail 库文件实例化发送邮件的服务器主机,然后实例化一个邮件对象再将内容、标题、地址等字段装入即可。

 

最后调用方法执行就大功告成了。

 

发送的结果: