这里实现用Java发送电子邮件,可以发送简单文本,或者html,再或者就是带附件了。
首先就是需要两个包,我用的是apache中commons中的,下载地址http://commons.apache.org/可以去下载。
需要的两个包为:mail.jar、commons-email.jar;
下面为发送文本的代码实现:
View Code import org.apache.commons.mail.Email;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.SimpleEmail;public class SimpleEmailTest {public static void main(String[] args) { Email email = new SimpleEmail();//smtp.qq.com是腾讯的邮件服务器;各邮箱的都可以查到;这里用QQ吧 email.setHostName("smtp.qq.com");//发送邮件的帐号、密码 email.setAuthentication("840***413", "123****"); email.setCharset("UTF-8");//是否加密,基本都是true email.setTLS(true);try {//这里是发送方的邮件 email.setFrom("840***413@qq.com"); email.setSubject("commons email");//这里放的就是要发送的文本内容了 email.setMsg("这是利用commons包发出的电子邮件");//发送目的邮箱 email.addTo("××××@163.com"); email.send(); } catch (EmailException e) { e.printStackTrace(); } }}很简单,发送html的或者带附件的都差不多,下面是发送html的,注意与上面的变化
View Code import org.apache.commons.mail.EmailException;import org.apache.commons.mail.HtmlEmail;public class HtmlEmailTest {public static void main(String[] args) { HtmlEmail email = new HtmlEmail();//变化1 email.setHostName("smtp.qq.com"); email.setAuthentication("840***413", "131*****"); email.setCharset("UTF-8"); email.setTLS(true);try { email.setFrom("840***413@qq.com"); email.setSubject("commons email"); email.setHtmlMsg("<div style=\"color:red;font-size:66px\">你好,这是测试邮件</div>"); email.addTo("***@163.com"); email.send(); } catch (EmailException e) { e.printStackTrace(); } }}下面是发送带附件的邮件
View Code import org.apache.commons.mail.EmailAttachment;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.MultiPartEmail;public class AttMailTest {public static void main(String[] args) { EmailAttachment ea = new EmailAttachment();//附件 ea.setPath("c:\\bar.jpg");//本地随便一个文件 MultiPartEmail email = new MultiPartEmail(); email.setHostName("smtp.qq.com"); email.setAuthentication("840***413", "131****"); email.setCharset("UTF-8"); email.setTLS(true);try { email.setFrom("840***413@qq.com"); email.setSubject("commons email"); email.setMsg("这是利用commons包发出的电子邮件"); email.addTo("***@163.com"); email.attach(ea); email.send(); } catch (EmailException e) { e.printStackTrace(); } }}其实基本没什么变化;这里有点要注意,现在工程是个Java工程,如果是web工程可能出现不能发送情况,原因是Myeclipse自带的
包中有mail.jar,但版本已经不对,需要手动删除,导入新下载的包,当初也是搜索了异常才解决问题;还有就是要对邮箱进行一些设置,这个
比较简单,程序运行后,如果没发送成功(不报错),一般qq会给你发送一封邮件告诉你应该设置某些邮箱参数(打开或者关闭)
转载于:https://www.cnblogs.com/wufengxyz/archive/2011/11/26/2264721.html
