北天软件工作室
北天软件集网站建设、网站开发、软件开发、网站优化SEO、网站宣传、网站开发成一体的网络公司。北天软件是专业的网站建设、网站开发、设计、制作和网站国际推广、搜索引擎推广的网络公司。口号:考虑企业所需,实现企业所想。JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!   旧版java技术网 | 设为首页 | 文章搜索 | RSS订阅地图
免费使用JavaCMS自助建站系统
  文章搜索:   
初学者园地  javascript  java技术  .Net技术 XML/WebService  数据库技术  web2.0技术  设计模式  设计框架  SEO技术  综合知识
您现在的位置是: 北天软件门户网>>java技术>>详细信息
JSP与JavaMail (六)
七.编写灵活的发送程序 本小节没加什么新鲜的东西,但是综合了以前的所有内容,可以让你灵活地发送你想要发的邮件.看了本小节之后对你会感觉到非常有用. 更改后的撰写界面程序如下: ------------------------------------------------------------------------------------------- <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();//新建一个存放附件的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(); %> <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> 到目前为止,我们基本上已学会了发各种类型的邮件了.但是,我们怎样去收自己的邮件呢,下一次再说吧:)! (待续)
关闭窗口 】   【 返回首页
推荐文章
· JSP与JavaMail (三)
· 用javamail写的解析Mi...
· JavaMail常见问题之...
· JavaMail应用:安装和...
· JDBC优化策略总结
· 十大开源SQL客户端 ...
· MySQL 5数据库连接超...
· Java调用SQL Server...
· 简介:MySQL数据库的...
· Sun和Java Swing 2.0...
· JComponentPack 3.0 ...
· 高级Swing组件makeove...
· 反射在Java Swing编...
· AjaxSwing 3.0发布 ...
· Java小技巧:关于Cooki...
· Java技巧:实例讲解Ser...
· 解决JSP开发Web程序...
· jsp生成JPEG图像(整理)
· Facebook 平台详解
· Java开源项目Hibernat...
北天软件工作室 粤ICP备06079815号 版权所有©2006-2008我要报警
精彩出品 JavaCMS自助建站 (C)2006-2008 www.it3838.com limited.all rights reserved.
Powered by JavaCMS V2.6.0