JSP与JavaMail (六)

来源:互联网 发布:苏州大数据培训课程 编辑:程序博客网 时间:2024/05/20 12:25
<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>七.编写灵活的发送程序 本小节没加什么新鲜的东西,但是综合了以前的所有内容,可以让你灵活地发送你想要发的邮件.看了本小节之后对你会感觉到非常有用.更改后的撰写界面程序如下:-------------------------------------------------------------------------------------------<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>撰写邮件</title></head><body><form action="testall.jsp" method="post" name="form1"> <table width="75" border="0" align="center" cellspacing="1" bgcolor="#006600" class="black"> <tr bgcolor="#FFFFFF"> <td width="24%">收信人地址:</td> <td width="76%"> <input name="to" type="text" id="to"></td> </tr> <tr bgcolor="#FFFFFF"> <td>主题:</td> <td> <input name="title" type="text" id="title"></td> </tr> <tr> <td height="18" colspan="2" bgcolor="#FFFFFF">信件类型 <select name="emailtype" id="emailtype"> <option value="text/plain" selected>Text</option> <option value="text/html">Html</option> </select></td> </tr> <tr> <td height="53" colspan="2" bgcolor="#FFFFFF"><textarea name="content" cols="50" rows="5" id="content"></textarea></td> </tr> <tr align="center"> <td colspan="2" bgcolor="#FFFFFF">附件1(自定义): <input name="fj1" type="text" id="fj1"> (输入文本信息) </td> </tr> <tr align="center" valign="bottom"> <td colspan="2" bgcolor="#FFFFFF">附件2(本地): <input name="fj2" type="file" id="fj2" size="10"></td> </tr> <tr align="center"> <td colspan="2" bgcolor="#FFFFFF">附件3(远程): <input name="fj3" type="text" id="fj3" value="http://"> (输入URL)</td> </tr> <tr align="center"> <td colspan="2" bgcolor="#FFFFFF"> <input type="submit" name="Submit" value="发送"> <input type="reset" name="Submit2" value="重置"></td> </tr> </table></form></body></html> 处理邮件的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.*"%><!--要用到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 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();//新建一个存放附件的BodyPartDataHandler dh=new DataHandler(tfj1,"text/plain;charset=gb2312"); //新建一个DataHandler对象,并设置其内容和格式/编码方式mdp.setFileName("text.txt");//加上这句将作为附件发送,否则将作为信件的文本内容mdp.setDataHandler(dh);//给BodyPart对象设置内容为dhmm.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();%><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> 到目前为止,我们基本上已学会了发各种类型的邮件了.但是,我们怎样去收自己的邮件呢,下一次再说吧:)! (待续)
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 总裁爹的密密宠萧玖陆亦臣 宠辱 宠辱不惊 宠辱不惊什么意思 宠辱皆惊 宠辱何惊 宠辱不惊闲看庭前花开花落 宠辱若惊 淘宝 宠辱不惊 宠辱不惊前一句 宠辱不惊的女人什么样 宠辱不惊书法作品 宠辱 落瑛纷飞 逆徒犯上甜宠小师尊 逆徒犯上甜宠师尊 凤逆江山王爷盛宠 逆徒犯上甜宠小师尊免费阅读 逆天神女邪王宠妻 逆徒犯上甜宠小师父 逆徒在上甜宠小师尊 宠逆 逆徒犯上甜宠小师尊全文 逆徒犯上甜宠小师尊txt 宠媚 萌宠妈咪在异世 宠魅 魅王宠妻之鬼医纵挎世子妃 魅王宠妻 宠魅全文阅读 魅王宠妻鬼医绔妃 宠魅h 宠魅txt下载 宠魅txt 宠魅2 魅王宠妻鬼医执夸妃 邪魅总裁的囚禁娇宠 养狐成妃邪魅冷王甜甜宠 宠魅主角所有魂宠实力排名 魅王宠妻鬼医纨绔妃免费阅读 魅宠 宠魅结局