JSP与JavaMail (五)

<script type="text/javascript"> google_ad_client = "pub-8800625213955058"; /* 336x280, 创建于 07-11-21 */ google_ad_slot = "0989131976"; google_ad_width = 336; google_ad_height = 280; // </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 6.发送三种类型的附件 前面我们已学会了发送一般文本邮件和超文本邮件,今天我们将让大家学会编写三种类型的附件的邮件 发送程序.(注:撰写界面仍然用前面的) <%@ 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.*"%><!--要用到URL类--> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>发送成功</title> </head> <body> <% try{ String tto=request.getParameter("to"); String ttitle=request.getParameter("title"); String tcontent=request.getParameter("content"); 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,"text/html;charset=gb2312");//给BodyPart对象设置内容和格式/编码方式 mm.addBodyPart(mdp);//将含有信件内容的BodyPart加入到MimeMultipart对象中 //设置信件的附件1(自定义附件:直接将所设文本内容加到自定义文件中作为附件发送) mdp=new MimeBodyPart();//新建一个存放附件的BodyPart DataHandler dh=new DataHandler("JavaMail附件测试","text/plain;charset=gb2312"); //新建一个DataHandler对象,并设置其内容和格式/编码方式 mdp.setFileName("xxf.txt");//加上这句将作为附件发送,否则将作为信件的文本内容 mdp.setDataHandler(dh);//给BodyPart对象设置内容为dh mm.addBodyPart(mdp);//将含有附件的BodyPart加入到MimeMultipart对象中 //设置信件的附件2(用本地上的文件作为附件) mdp=new MimeBodyPart(); FileDataSource fds=new FileDataSource("g:/xx.txt"); dh=new DataHandler(fds); mdp.setFileName("dd.txt");//可以和原文件名不一致 mdp.setDataHandler(dh); mm.addBodyPart(mdp); //设置信件的附件3(用远程文件作为附件) mdp=new MimeBodyPart(); URLDataSource ur=new URLDataSource(new URL("http://localhost:8080/jspstudy/email/xx.gif")); //注:这里用的参数只能为URL对象,不能为URL字串,在前面类介绍时有误(请谅解),这里纠正一下. dh=new DataHandler(ur); mdp.setFileName("ss.txt"); 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(); %> <div align="center"> <p><font color="#FF6600">发送成功!</font></p> <p><a href="recmail.jsp">去看看我的信箱</a><br> <br> <a href="index.htm">再发一封</a> </p> </div> <% }catch(MessagingException e){ out.println(e.toString()); } %> </body> </html> 发送附件是不是很有趣呢?但是在这里由于没有修改撰写界面,要发送的附件只能在程序里固定,所以一点都不灵活.不用担心,下一次我们将重写撰写界面,当然同时也会修改邮件处理程序,到时我们将能灵活地发送自己的邮件. (待续)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值