您的位置:首页 > 编程语言 > ASP

asp.net 利用jmail完成邮件的发送功能

2012-09-10 23:19 489 查看
  今天公司那边有提了一个新的需求,希望投递简历的人符合条件的发到邮箱功能,并存到数据库,网站后台可以管理这个个人简历;不符合要求的可以存到数据库,但是不显示,也不发到邮箱。

  以前从没有实现过相关的功能。于是开始看别人的文档。最后大概知道了有两个办法可以解决自己的办法。

  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文件中实现此功能,具体的可以百度一下,但是对这个实现时牺牲服务器的性能为代价的,所以这里我不推荐使用。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: