站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题JSP与JavaMail(5)---发送三种类型的附件

JSP与JavaMail(5)---发送三种类型的附件

摘要: JSP与JavaMail(5)---发送三种类型的附件

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.*"%> <head>

发送成功 </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(); %>

发送成功!


去看看我的信箱


再发一封

<%
}catch(MessagingException e){
out.println(e.toString()); } %> </body>
发送附件是不是很有趣呢?但是在这里由于没有修改撰写界面,要发送的附件只能在
程序里固定,所以一点都不灵活.不用担心,下一次我们将重写撰写界面,当然同时也
会修改邮件处理程序,到时我们将能灵活地发送自己的邮件. (待续)
↑返回目录
前一篇: JSP与JavaMail(6)---编写灵活的邮件发送程序
后一篇: JSP与JavaMail(4)---发送HTML格式的邮件