﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Jeanson</title><link>http://www.blogjava.net/kanwet/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 05 Apr 2026 20:42:32 GMT</lastBuildDate><pubDate>Sun, 05 Apr 2026 20:42:32 GMT</pubDate><ttl>60</ttl><item><title>java 发送邮件源码 </title><link>http://www.blogjava.net/kanwet/archive/2007/08/10/135776.html</link><dc:creator>J++</dc:creator><author>J++</author><pubDate>Fri, 10 Aug 2007 05:03:00 GMT</pubDate><guid>http://www.blogjava.net/kanwet/archive/2007/08/10/135776.html</guid><wfw:comment>http://www.blogjava.net/kanwet/comments/135776.html</wfw:comment><comments>http://www.blogjava.net/kanwet/archive/2007/08/10/135776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kanwet/comments/commentRss/135776.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kanwet/services/trackbacks/135776.html</trackback:ping><description><![CDATA[<p>import javax.mail.* ;<br>import java.util.* ;<br>import javax.mail.internet.* ;<br>import java.net.* ;<br>import javax.activation.* ;<br>import com.westerasoft.changqingzj.common.commsql.* ;</p>
<p>public class SendMaiBean<br>{<br>&nbsp; /**<br>&nbsp;&nbsp; * 网际邮件扩充协议消息对象<br>&nbsp;&nbsp; */<br>&nbsp; private MimeMessage message = null ;</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; * 发送器<br>&nbsp;&nbsp; */<br>&nbsp; private Transport transport = null ;</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; *session对象<br>&nbsp;&nbsp; */<br>&nbsp; private Session session = null ;</p>
<p>&nbsp; private Multipart mm = new MimeMultipart() ;</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; * 设置mail服务器<br>&nbsp;&nbsp; */<br>&nbsp; public SendMaiBean(String mailServer) throws Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Properties props = new Properties() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put("mail.smtp.host",mailServer) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put("mail.smtp.auth", "true") ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session = Session.getInstance(props) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.setDebug(true) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message = new MimeMessage(session) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.transport = this.session.getTransport("smtp") ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "可能因为网络故障,连接邮件服务器失败！") ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }<br>&nbsp; /**<br>&nbsp;&nbsp; * 设置发信人的用户名<br>&nbsp;&nbsp; * @throws Exception<br>&nbsp;&nbsp; */<br>&nbsp; public void connectServer(String fromUserName, String fromUserPassword<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , String serverIp) throws Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.transport.connect(serverIp, fromUserName, fromUserPassword) ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "连接邮件服务器失败,请检查你的用户名和密码和网络！") ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; * 发送mail<br>&nbsp;&nbsp; */<br>&nbsp; public void sendMail() throws Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setContent(mm) ; //把mm作为消息对象的内容<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setSentDate(new Date()) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.saveChanges() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transport.sendMessage(message, message.getAllRecipients()) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transport.close() ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "可能是因为网络故障,发送邮件失败！") ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; *<br>&nbsp;&nbsp; */<br>&nbsp; public void setMailToAddresses(String[] tos) throws Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Address address[]=new Address[tos.length];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0 ; i &lt; tos.length ; i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InternetAddress to = new InternetAddress(tos) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; address=to;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setRecipients(Message.RecipientType.TO,address);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "收信人地址错误！") ;<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp; }</p>
/**<br>&nbsp;&nbsp; *&nbsp; 设置发行人<br>&nbsp;&nbsp; */<br>&nbsp; public void setMailFromAddress(String from) throws Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InternetAddress f = new InternetAddress(from) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setFrom(f) ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "发信人地址错误！") ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }
<p>&nbsp; /**<br>&nbsp;&nbsp; * 设置主题<br>&nbsp;&nbsp; */<br>&nbsp; public void setMailTitle(String title) throws Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; message.setSubject(title,"gb2312") ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "发送信件主题错误！") ;<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp; }</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; *<br>&nbsp;&nbsp; */<br>&nbsp; public void setMailContent(String tcontent, String emailtype) throws<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置信件文本内容<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BodyPart mdp = new MimeBodyPart() ; //新建一个存放信件内容的BodyPart对象<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdp.setContent(tcontent, emailtype + ";charset=gb2312") ; //给BodyPart对象设置内容和格式/编码方式<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mm.addBodyPart(mdp) ; //将含有信件内容的BodyPart加入到MimeMultipart对象中<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "发送信件内容错误！") ;<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp; }</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; * 增加附件，注：是手输入的文本信息<br>&nbsp;&nbsp; */<br>&nbsp; public void addTextTypeFile(String content) throws Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp; 设置信件的附件1(自定义附件:直接将所设文本内容加到自定义文件中作为附件发送)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeBodyPart mdp = new MimeBodyPart() ; //新建一个存放附件的BodyPart<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataHandler dh = new DataHandler(content, "text/plain;charset=gb2312") ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //新建一个DataHandler对象,并设置其内容和格式/编码方式<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdp.setFileName("text.txt") ; //加上这句将作为附件发送,否则将作为信件的文本内容<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdp.setDataHandler(dh) ; //给BodyPart对象设置内容为dh<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mm.addBodyPart(mdp) ; //将含有附件的BodyPart加入到MimeMultipart对象中<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "发送文本附件出错！") ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; * 增加附件，注：是本地文件<br>&nbsp;&nbsp; */<br>&nbsp; public void addFileTypeFile(String fileName) throws Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置信件的附件2(用本地上的文件作为附件)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeBodyPart mdp = new MimeBodyPart() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileDataSource fds = new FileDataSource(fileName) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataHandler dh = new DataHandler(fds) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ddd = fileName.lastIndexOf("\\") ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String fname = fileName.substring(ddd) ; //提取文件名<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String ffname = new String(fname.getBytes("gb2312"), "ISO8859-1") ; //处理文件名是中文的情况<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdp.setFileName(ffname) ; //可以和原文件名不一致,但最好一样<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdp.setDataHandler(dh) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mm.addBodyPart(mdp) ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch (Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "发送文件附件出错！") ;<br>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp; }</p>
<p>&nbsp; /**<br>&nbsp;&nbsp; *&nbsp; 增加附件，注：是网络中的文件<br>&nbsp;&nbsp; */<br>&nbsp; public void addNetTypeFile(String netAddressAndFileName) throws Exception<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置信件的附件3(用远程文件作为附件)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeBodyPart mdp = new MimeBodyPart() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; URL urlfj = new URL(netAddressAndFileName) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; URLDataSource ur = new URLDataSource(urlfj) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //注:这里用的参数只能为URL对象,不能为URL字串,在前面类介绍时有误(请谅解),这里纠正一下.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataHandler dh = new DataHandler(ur) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ttt = netAddressAndFileName.lastIndexOf("/") ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String urlname = netAddressAndFileName.substring(ttt) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdp.setFileName(urlname) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mdp.setDataHandler(dh) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mm.addBodyPart(mdp) ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; catch(Exception e)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception(ExceptionHandle.ERROR_PREFIX + "发送网络附件出错出错！") ;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; }<br>&nbsp; }<br><br><br>来自IT资源网<a title=IT资源网 href="http://www.src119.com/" target=_blank>IT资源网</a></p>
<script type=text/javascript><!--
google_ad_client = "pub-1225254926943294";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text_image";
google_ad_channel = "";
//-->
</script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript>
</script>
<img src ="http://www.blogjava.net/kanwet/aggbug/135776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kanwet/" target="_blank">J++</a> 2007-08-10 13:03 <a href="http://www.blogjava.net/kanwet/archive/2007/08/10/135776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>