Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1503723
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 20:31:21

一起学习
七.编写灵活的发送程序 本小节没加什么新鲜的东西,但是综合了以前的所有内容,可以让你灵活地发送你想要发的邮件.看了本小节之后对你会感觉到非常有用. 更改后的撰写界面程序如下: ------------------------------------------------------------------------------------------- 撰写邮件
收信人地址:
主题:
信件类型
附件1(自定义): (输入文本信息)
附件2(本地):
附件3(远程): (输入URL)
处理邮件的JSP程序如下: ---------------------------------------------------------------------------------------- <%@ page contentType="text/html;charset=GB2312" %> <%request.setCharacterEncoding("gb2312");%> <%@ page import="java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*"%> <%@ page import="javax.activation.*"%> <%@ page import="java.net.*"%> 发送成功 <% try{ String tto=request.getParameter("to"); String ttitle=request.getParameter("title"); String emailtype=request.getParameter("emailtype");//获取email类型 String tcontent=request.getParameter("content"); String tfj1=request.getParameter("fj1"); String tfj2=request.getParameter("fj2"); String tfj3=request.getParameter("fj3"); Properties props=new Properties(); props.put("mail.smtp.host","127.0.0.1"); props.put("mail.smtp.auth","true"); Session s=Session.getInstance(props); s.setDebug(true); MimeMessage message=new MimeMessage(s); //给消息对象设置发件人/收件人/主题/发信时间 InternetAddress from=new InternetAddress("xxf@cafe.com"); message.setFrom(from); InternetAddress to=new InternetAddress(tto); message.setRecipient(Message.RecipientType.TO,to); message.setSubject(ttitle); message.setSentDate(new Date()); Multipart mm=new MimeMultipart();//新建一个MimeMultipart对象用来存放多个BodyPart对象 //设置信件文本内容 BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象 mdp.setContent(tcontent,emailtype ";charset=gb2312");//给BodyPart对象设置内容和格式/编码方式 mm.addBodyPart(mdp);//将含有信件内容的BodyPart加入到MimeMultipart对象中 //设置信件的附件1(自定义附件:直接将所设文本内容加到自定义文件中作为附件发送) mdp=new MimeBodyPart();//新建一个存放附件的BodyPart DataHandler dh=new DataHandler(tfj1,"text/plain;charset=gb2312"); //新建一个DataHandler对象,并设置其内容和格式/编码方式 mdp.setFileName("text.txt");//加上这句将作为附件发送,否则将作为信件的文本内容 mdp.setDataHandler(dh);//给BodyPart对象设置内容为dh mm.addBodyPart(mdp);//将含有附件的BodyPart加入到MimeMultipart对象中 //设置信件的附件2(用本地上的文件作为附件) mdp=new MimeBodyPart(); FileDataSource fds=new FileDataSource(tfj2); dh=new DataHandler(fds); int ddd=tfj2.lastIndexOf("\\"); String fname=tfj2.substring(ddd);//提取文件名 String ffname=new String(fname.getBytes("gb2312"),"ISO8859-1");//处理文件名是中文的情况 mdp.setFileName(ffname);//可以和原文件名不一致,但最好一样 mdp.setDataHandler(dh); mm.addBodyPart(mdp); //设置信件的附件3(用远程文件作为附件) mdp=new MimeBodyPart(); URL urlfj=new URL(tfj3); URLDataSource ur=new URLDataSource(urlfj); //注:这里用的参数只能为URL对象,不能为URL字串,在前面类介绍时有误(请谅解),这里纠正一下. dh=new DataHandler(ur); int ttt=tfj3.lastIndexOf("/"); String urlname=tfj3.substring(ttt); //String urlfname=new String(urlname.getBytes("gb2312"),"ISO8859-1");//不知怎么回事,这里不能处理中文问题 mdp.setFileName(urlname); mdp.setDataHandler(dh); mm.addBodyPart(mdp); message.setContent(mm);//把mm作为消息对象的内容 message.saveChanges(); Transport transport=s.getTransport("smtp"); transport.connect("127.0.0.1","xxf","coffee"); transport.sendMessage(message,message.getAllRecipients()); transport.close(); %> <% }catch(MessagingException e){ out.println(e.toString()); } %> 到目前为止,我们基本上已学会了发各种类型的邮件了.但是,我们怎样去收自己的邮件呢,下一次再说吧:)! (待续) 下载本文示例代码


JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)JSP与JavaMail (六)
阅读(93) | 评论(0) | 转发(0) |
0

上一篇:JSP与JavaMail (一)

下一篇:JSP与JavaMail (四)

给主人留下些什么吧!~~