使用的包:commons-email-1.2-bin.zip,下载后解压取其中的jar包。
另外使用MimeUtility.encodeText()时需要mail.jar包。
发送HTML格式的邮件,代码如下:
package com.mail.test;
/**
* 发送邮件
*/
import java.io.File;
import java.io.UnsupportedEncodingException;
import javax.mail.internet.MimeUtility;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class Mail {
public static void main(String [] args){
HtmlEmail email = new HtmlEmail();
try {
/*** 添加附件****************************/
EmailAttachment ea = new EmailAttachment();//创建加载附件对象
ea.setPath("F:\\新建文件夹\\11.jpg");//附件的地址
ea.setDisposition(EmailAttachment.ATTACHMENT);//表示附件
ea.setDescription("通讯录");//描述
/** MimeUtility.encodeText() 编码,使附件的中文不会变成乱码 */
ea.setName(MimeUtility.encodeText("11.jpg"));
/****************************************/
email.setHostName("smtp.qq.com");//服务器
email.setAuthentication("username", "password");//验证用户
email.addTo("to@qq.com");//设置接收方
email.setFrom("from@qq.com");//设置发送方
email.setSubject("测试");//设置主题
email.setCharset("UTF-8");//设置编码
/******设置邮件的正文部分****/
//email.setHtmlMsg("<html><body><font color='red'>测试HTML格式的邮件!!!</font></body></html>");
/*email.setHtmlMsg("<html><body><table border=1><tr><td>姓名</td>"+
"<td>性别</td><td>地址</td><td>备注</td></tr>"+ "<tr><td>天天</td><td>女</td><td>广州越秀</td><td>dgfdhgfjhgj</td>"
+"</tr> </table></body></html>");*/
/**********************添加正文图片******************************/
File img = new File("E:\\风云.bmp");
email.setHtmlMsg("<h4>内含附件、图文并茂的邮件测试!!!</h4> </br>"
+ "<a href = http://www.baidu.com/> 百度一下</a></br>"
+ "<img src = \"cid:"+email.embed(img)+"\"></a>");
/******************************************************/
email.attach(ea);//添加附件
email.send();//发送邮件
System.out.println("发送成功");
} catch (EmailException e) {
System.out.println("发送失败");
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}