asp.net 利用jmail完成邮件的发送功能
今天公司那边有提了一个新的需求,希望投递简历的人符合条件的发到邮箱功能,并存到数据库,网站后台可以管理这个个人简历;不符合要求的可以存到数据库,但是不显示,也不发到邮箱。
以前从没有实现过相关的功能。于是开始看别人的文档。最后大概知道了有两个办法可以解决自己的办法。
1.就是利用iis的smtp自己搭建一个邮件的服务器。
2.利用第三方插件来完成此功能。
由于第一种方案,需要了解很多的知识(一些协议和smtp的配置等等),不太适合我这个初学者,于是选择了第二种。
有了插件很简单。asp.net本身不具有jmail的功能(但是利用iis来实现邮件的发送),所以我们需要安装一下jmail的插件,插件下载,如果你想进一步了解插件的全部功能,可以参考此文档,文档下载。
安装完插件以后,我们要新建一个网站,并新建一个Bin文件夹,然后右击点击Bin文件夹,添加引用,到安装jmail的目录找到jmail.dll文件。
引用完成了以后接着我们开始来测试jmail功能了,测试的发送邮件暂时成功的是163的邮箱,gmail测试不成功,hotmail暂时还没有测试。
首先我们新建一个页面,并放一个按钮,按钮的text为"发送到邮箱",双击此按钮,则vs自动为我们生成了button事件,我们在时间的函数里面写上如下代码:
protected void Button1_Click(object sender, EventArgs e) { //我这里测试的邮件账号是codeany@163.com //测试的密码是就不投入给大家了,改成自己的密码就好了
//接受邮箱可以随便写一个你自己喜欢的邮箱 jmail.Message Jmail = new jmail.Message(); //创建一个jmail对象 String Subject = "CMPC"; //设置发送邮件的主题 String body = "这个是测试的内容来自吴建明"; //设置发送邮件的内容 String FromEmail = "codeany@163.com"; //发送的邮箱 String ToEmail = "codeany@163.com"; //接受的邮箱 Jmail.Silent = true; //安静的发送邮件 Jmail.Charset = "GB2312"; //设置发送邮件的字符集 //Jmail.ContentType = "text/html"; Jmail.AddRecipient(ToEmail); //添加发送的邮件 Jmail.From = FromEmail; //从何处发送 Jmail.MailServerUserName = "codeany"; //发件人姓名 Jmail.MailServerPassWord = "******"; //发件邮件的密码 Jmail.Subject = Subject; //发件邮件的主题 Jmail.AddAttachment(@"I:\data.txt", true, null); //添加I目下面的data.txt文件 Jmail.Body = body; //添加发送邮件的内容 //Jmail.DeferredDelivery = new DateTime(2012, 9, 11,18,0,0); //设置发送邮件的延迟时间 //这个163不行 Jmail.Send("smtp.163.com", false); //发送邮件的服务器 Jmail.Close(); //关闭Jmail }
这里有一点需要注意的asp.net邮件的定时发送不可以实现,winform是可以利用timer控件来完成定时的功能,并不是所有的事情都是绝对的,我们可以在asp.net的global.asax文件中实现此功能,具体的可以百度一下,但是对这个实现时牺牲服务器的性能为代价的,所以这里我不推荐使用。
Stallman 先生认为最大的快乐是让自己发展的软件让大家来使用了!