<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[利用java发邮件]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Thu, 14 May 2009 11:41:10 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp; <strong><span style="color: #FF4500;">网站发送邮件是一个常用功能</span></strong>，现在有相当一部分网站用户注册都需要通过Email验证合法性，而用javamail比较繁琐，apache又做了一件好事：在javamail的基础上封装java发送邮件业务，让用户可以通过简单的调用几个方法就可以实现邮件发送与接收。<br/>　　首先，这篇文章的<strong><span style="color: #4B0082;">测试环境</span></strong>是：<strong><span style="color: #2E8B57;">jdk 1.6+MyEclipse 5.5.1 GA+</span></strong><a href="http://java.sun.com/products/javamail/" target="_blank"><strong><span style="color: #2E8B57;">javamail 1.4</span></strong></a>(在控制台测试的，所以没用到应用服务器)。<br/>　　然后在apache官网上下载<a href="http://commons.apache.org/downloads/download_email.cgi" target="_blank">Commons Email</a>，下面是几个用Commons Email发邮件的方法。<br/><br/><br/><div class="code"><br/>package com.pig.email;<br/>import java.net.MalformedURLException;<br/>import java.net.URL;<br/>import org.apache.commons.mail.EmailAttachment;<br/>import org.apache.commons.mail.EmailException;<br/>import org.apache.commons.mail.HtmlEmail;<br/>import org.apache.commons.mail.MultiPartEmail;<br/>import org.apache.commons.mail.SimpleEmail;<br/>/**<br/> * 用apache的Commons Email发送邮件<br/> *<br/> * @author www.5ipig.com/blog<br/> */<br/>public class JavaMail &#123;<br/>&nbsp;&nbsp;/**<br/>&nbsp;&nbsp; * 用apache的Commons Email发送不含附件的邮件<br/>&nbsp;&nbsp; *<br/>&nbsp;&nbsp; * @return 发送结果，是否发送成功<br/>&nbsp;&nbsp; */<br/>&nbsp;&nbsp;public String sendSingleMail() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;String resultmsg = &quot;发信失败！&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;SimpleEmail email = new SimpleEmail();<br/>&nbsp;&nbsp;&nbsp;&nbsp;email.setHostName(&quot;smtp.163.com&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;try &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.addTo(&quot;zhutou@163.com&quot;, &quot;zhutou&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setFrom(&quot;zhutou@163.com&quot;, &quot;zhutou&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 请修改成你的邮箱账号和密码。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setAuthentication(&quot;username&quot;, &quot;password&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setSubject(&quot;发信测试标题&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setMsg(&quot;This is a simple test of commons-email&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultmsg = email.send();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (resultmsg != null) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultmsg = &quot;发送成功！&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125; catch (EmailException e) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return resultmsg;<br/>&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;/**<br/>&nbsp;&nbsp; * 发送单个带附件的邮件<br/>&nbsp;&nbsp; *<br/>&nbsp;&nbsp; * @return 发送结果，是否发送成功<br/>&nbsp;&nbsp; */<br/>&nbsp;&nbsp;public String sendAttachmentsMail() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;String resultmsg = &quot;发信失败！&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 创建一个附件对象<br/>&nbsp;&nbsp;&nbsp;&nbsp;EmailAttachment attachment = new EmailAttachment();<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 设置附件的地址，可以是本机地址（包括绝对地址和相对地址），<br/>&nbsp;&nbsp;&nbsp;&nbsp;//也可以是internet地址，如：http://www.5ipig.com/blog/attachment.php?fid=2&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;attachment.setPath(&quot;E:&#92;&#92;1.jpg&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;attachment.setDisposition(EmailAttachment.ATTACHMENT);<br/>&nbsp;&nbsp;&nbsp;&nbsp;attachment.setDescription(&quot;Picture of gaylys&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;attachment.setName(&quot;gaylys&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 创建多文本邮件对象<br/>&nbsp;&nbsp;&nbsp;&nbsp;MultiPartEmail email = new MultiPartEmail();<br/>&nbsp;&nbsp;&nbsp;&nbsp;email.setHostName(&quot;smtp.163.com&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;try &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.addTo(&quot;zhutou@163.com&quot;, &quot;zhutou&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setFrom(&quot;zhutou@163.com&quot;, &quot;zhutou&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 请修改成你的邮箱账号和密码。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setAuthentication(&quot;username&quot;, &quot;password&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setSubject(&quot;带附件的邮件&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setMsg(&quot;Here is the picture you wanted&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 将附件添加到邮件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.attach(attachment);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 发送邮件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultmsg = email.send();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (resultmsg != null &amp;&amp; !&quot;&quot;.equals(resultmsg)) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultmsg = &quot;发送成功！&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125; catch (EmailException e) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return resultmsg;<br/>&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;/**<br/>&nbsp;&nbsp; * 发送html邮件<br/>&nbsp;&nbsp; *<br/>&nbsp;&nbsp; * @return 发送结果，是否发送成功<br/>&nbsp;&nbsp; */<br/>&nbsp;&nbsp;public String sendHtmlEmail() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;String resultmsg = &quot;发信失败！&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 创建邮件对象<br/>&nbsp;&nbsp;&nbsp;&nbsp;HtmlEmail email = new HtmlEmail();<br/>&nbsp;&nbsp;&nbsp;&nbsp;email.setHostName(&quot;smtp.163.com&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;try &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.addTo(&quot;zhutou@163.com&quot;, &quot;zhutou&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setFrom(&quot;zhutou@163.com&quot;, &quot;zhutou&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 请修改成你的邮箱账号和密码。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setAuthentication(&quot;username&quot;, &quot;password&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setSubject(&quot;发送html邮件的测试&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 嵌入附件地址<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;URL url = new URL(<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;http://www.5ipig.com/blog/attachment.php?fid=2 &quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String cid = email.embed(url, &quot;3D桌面&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置编码格式，不设置会出现中文乱码。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setCharset(&quot;GB2312&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 写入html代码<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email.setHtmlMsg(&quot;3D桌面 - &lt;img src=&quot;&#92;&quot; alt=&quot;&quot; /&gt;&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置替代文字<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;email<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setTextMsg(&quot;Your email client does not support HTML messages&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 发送邮件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultmsg = email.send();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (resultmsg != null &amp;&amp; !&quot;&quot;.equals(resultmsg)) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultmsg = &quot;发送成功！&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125; catch (EmailException e) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125; catch (MalformedURLException e) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return resultmsg;<br/>&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;public static void main(String args&#91;&#93;) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;JavaMail mail = new JavaMail();<br/>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(mail.sendHtmlEmail());<br/>&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/></div><br/><br/>　　java发送邮件的基本方法也就这些，当然还有群发，我看了下，Commons Email好像没提供群发的功能，不过如果你有这个需要可以自己写一个：收信人是多个，用”,”分隔，根据收信人数循环发送邮件，也就是多次调用发邮件的方法。<br/>　　如果你是按照以上步骤写的代码，却不能发送邮件，看看是不是下面的错误：<br/>Exception in thread “main” java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream或者javax.mail.NoSuchProviderException: smtp<br/><br/> <strong><span style="color: #008000;">解决方案:</span><span style="color: #DC143C;"> JavaEE版本和JavaMail的版本不一致,请将sun公司上下载最新版本.如果还报这个错，找到myeclipse环境中的javaee.jar 包，用winrar或者其他解压缩工具打开，删除mail跟activation包，因为javaee.jar中的mail与javamail冲突。</span></strong><br/><br/>没问题了。<br/>Tags - <a href="https://www.heckjj.com/tags/java%25E5%258F%2591%25E9%2582%25AE%25E4%25BB%25B6/" rel="tag">java发邮件</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] 利用java发邮件]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>