




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.net 邮件的收发整理 :编程学习网加入收藏推荐给朋友本文已被浏览 :8320 次发送邮件现在应用得最多的两种情况就是利用.net 自带的发送邮件和利用jmail 组件来发送邮件。 .net自带的邮件发送利用了system.web.mail.mailmessage这个类, 这是在 vs2003 的情况下, 在 vs2005 下更多的是利用system.net.mail.mailmessage,下面的例子是在vs2003 的情况下写的 ,请在应用的时候自己替换掉里面的参数。public void sendmails() string sendtos=sendto.text.trim();/发送
2、人string cctos=ccto.text.trim(); /抄送人string receiver=system.text.regularexpressions.regex.split(sendtos+cctos,); /总收件人string frommail=;/发件人string title= 你好 ; /邮件主题string body= 附件里重要文档,请查收 !; /邮件主体string showname=ustbwuyi;/显示名字if(sendtos!= | cctos!=) /用户名 (取发送邮箱的 前面的部分 ,即 ustbwuyi1 string mailusername
3、=frommail.substring(0,frommail.indexof(); /密码string mailpassword=ustbwuyi; system.web.mail.mailmessage mailmessage=new mailmessage(); mailmessage.from=frommail; mailmessage.subject=title; mailmessage.body=body; /添加附件 arraylist filenames; /如果存在附件if(filenames.count=1) /添加附件string filename; for(int k=0
4、;kfilenames.count;k+) filename=filenamesk.tostring(); mailmessage.attachments.add(new mailattachment(filename); mailmessage.fields.add(http:/ mailmessage.fields.add(http:/ mailmessage.fields.add(http:/ /向收件人和抄送人循环发送for (int j=0;jreceiver.length;j+) mailmessage.to=receiverj.tostring(); system.web.mai
5、l.smtpmail.smtpserver=; try system.web.mail.smtpmail.send(mailmessage); catch (exception ex) response.write(alert(邮件发送失败 ,请您和 ustbwuyi 联系 (qq:108556024)!); 上面的例子是利用163 的 smtp 邮件 服务器 来发送邮件,当然,如果你有自己的邮件服务器 更好。其次,是利用jmail 组件来发送,现在jmail 组件的版本很多,在这里我个人推荐jmail4.4pro版本,因为如果你要收邮件的话,必须用 pro 版本,另外,个人经过测试了其它几个
6、版本,发现只有这个版本不会出现附件丢失的情况,其他几个版本都会出现附件丢失或者损坏的情况,这个对txt 文件来说没有影响,但是对于传送图片或者其他的一些压缩文件,会发现从pop 服务器 上下过来的附件有一些损坏,从而不能正常打开文件。下面是jmail 发送邮件的代码。public void sendmails() jmail.messageclass mymail = new jmail.messageclass(); string sendtos=sendto.text.trim();/发送人string cctos=ccto.text.trim(); /抄送人string receiver
7、=system.text.regularexpressions.regex.split(sendtos+cctos,); /总收件人string frommail=;/发件人string title= 你好 ; /邮件主题string body= 附件里是重要文档,请查收 !; /邮件主体string showname=ustbwuyi;/显示名字 / 取 email 的前面部分为用户名,即 ustbwuyi1, 当然也可以自己设置. string mailusername=frommail.substring(0,frommail.indexof(); string mailpassword
8、=ustbwuyi; if(sendtos!= | cctos!=) / 字符集 mymail.charset = gb2312; /附件的编码格式 mymail.encoding = base64; /是否将信头编码成iso-8859-1字符集 mymail.isoencodeheaders = false ; /发送人邮件地址 mymail.from = frommail; /发送人姓名 mymail.fromname = showname; / 邮件主题 mymail.subject =title; /身份验证的用户名 mymail.mailserverusername = mailus
9、ername; /用户密码 mymail.mailserverpassword = mailpassword; /邮件内容 mymail.body = body; arraylist filenames; /如果存在附件if(filenames.count=1) /添加附件string filename; for(int k=0;kfilenames.count;k+) filename=filenamesk.tostring(); mymail.addattachment(filename,false,httputility.urldecode(filename.substring(file
10、name.lastindexof(.)+1,3); try /循环发送for(int i=0;ireceiver.length;i+) mymail.addrecipient(receiveri,); mymail.send(m,false ); catch (exception ex) response.write(alert(邮件发送失败 ,请您和 ustbwuyi 联系 (qq:108556024)!); 好了,现在我们来看看接收邮件的问题。一般来说,接收邮件主要分为两部分,一是将接收到的邮件的信息保存到数据库 ,如邮件的主题,内容,发送人,发送时间等。其次是对邮件附件的处理,主要将邮件
11、附件从pop 服务器 上下载下来并保存到数据库, 然后将附件信息保存到数据库 , 如附件的路径, 附件对应的邮件编号等信息。这一点 .net 自带的似乎并不太好处理,没有 jmail组件处理方便, 当然关于 .net 自带的我并没有深入研究,个人经过比较还是推荐jmail ,当然前面说过关于jmail 几个版本在这方面的差异,所以个人还是推荐jmail4.4pro版本。下面是收邮件的代码:public void receivemails( string username) jmail.message msg=new jmail.message(); jmail.pop3 jpop = new
12、jmail.pop3(); jmail.attachments atts; jmail.attachment att; /username为用户名 ,该方法通过用户名获取该用户的pop 设置 ,即用户的 pop 用户名 ,密码 ,pop 服务器 地址以及端口号这四个参数 ,这四个参数是连接pop 服务器 的必用参数 . sqldatareader datareader = this.extgetsetting(username); if(datareader.read() if(datareaderpopserver.tostring()!=&datareaderpopusername
13、.tostring()!=) /连接 pop 服务器 jpop.connect(datareaderpopusername.tostring(),datareaderpoppassword.tostring(),datareaderpopserver.tostring(),int32.parse(datareaderpopport.tostring(); /如果 服务器 上有邮件if(jpop.count=1) for(int i=1;iconvert.todatetime(data.rows00.tostring() /将这封新邮件的信息保存到数据库this.saveextmail(msg,
14、username,datareaderemail.tostring(),jpop.getmessageuid(i); /获取附件上传到 服务器 并且将信息存入 数据库if(atts.count=1) for(int k=0;katts.count;k+) att=attsk;/获得附件string attname=att.name; try random tempnameint = new random(); string newmaildirname = tempnameint.next(100000000).tostring(); directory.createdirectory(sys
15、tem.web.httpcontext.current.server.mappath(.)+attachfiles+username+newmaildirname); string mailpath=attachfiles+username+newmaildirname+attname; att.savetofile(system.web.httpcontext.current.server.mappath(.)+mailpath); /获取该封邮件在 数据库 的 id,以便和附件信息相对应,取邮件表中的最大id 即可int mailid= this .getmailid(); /将附件信息存入 数据库this .at
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南充文化旅游职业学院《临床医学概论A1》2023-2024学年第二学期期末试卷
- 电子科技大学成都学院《班级管理》2023-2024学年第二学期期末试卷
- 甘肃民族师范学院《机械可靠性与优化》2023-2024学年第二学期期末试卷
- 鹤岗师范高等专科学校《过程检测技术》2023-2024学年第二学期期末试卷
- 湖南理工学院南湖学院《科技写作及文献检索2》2023-2024学年第二学期期末试卷
- 河北轨道运输职业技术学院《诊断学实验》2023-2024学年第二学期期末试卷
- 粉尘爆炸场所防爆安全
- 湖北开放职业学院《中国现当代文学Ⅳ》2023-2024学年第二学期期末试卷
- 怎样做好沟通艺术
- 山东外贸职业学院《形势与政策》2023-2024学年第一学期期末试卷
- 代谢相关(非酒精性)脂肪性肝病防治指南2024年版解读
- 临床护理实践指南2024版
- 政府采购评审专家考试试题库(完整版)
- 第六单元 共同面对的全球性问题 知识清单
- 2024年山东省日照市中考地理试题卷(含答案解析)
- 企业合同交易主体履约信用评价管理制度
- 场地租赁合同(标准版)
- 综合实践活动《社会公益活动我参与》-四年级下册课件
- 第9课《桃花源记》 统编版语文八年级下册
- 局外人小说读书分享课件
- 地理默写东南亚南亚
评论
0/150
提交评论