一、使用Apache commons email发送邮件
引用commons-mail组件包
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>
</dependency>
1.发送简单文本邮件
/**
* @describe 发送内容为简单文本的邮件
* @throws EmailException
*/
public static void sendSimpleTextEmail() throws EmailException {
Email email = new SimpleEmail();
//设置主机名,QQ邮箱是"smtp.qq.com",网易邮箱是"smtp.163.com"
email.setHostName("smtp.163.com");
// 用户名和密码为邮箱的账号和授权码(不需要进行base64编码)
email.setAuthenticator(new DefaultAuthenticator("myemailaddress@163.com", "myshouquanma"));
//设置SSL连接,这样写就对了
email.setSSLOnConnect(true);
//设置来源,就是发送方的邮箱地址
email.setFrom("myemailaddress@163.com");
//设置主题,可以不设置
email.setSubject("java发送邮件");
//设置信息,就是内容,这个必须要有
email.setMsg("这是测试邮件 ... :-)");
//接收人邮箱地址
email.addTo("receiveeraddress@qq.com");
email.send();
}
2.发送包含附件的邮件
附件为本地资源,这里用到了一个EmailAttachment对象,也就是附件的意思
/**
* @describe 发送包含附件的邮件(附件为本地资源)
* @throws EmailException
*/
public static void sendEmailsWithAttachments() throws EmailException {
// 创建一个attachment(附件)对象
EmailAttachment attachment = new EmailAttachment();
//设置上传附件的地址
attachment.setPath("C:\\Users\\Administrator\\Pictures\\Saved Pictures\\conti.png");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
//这个描述可以随便写
attachment.setDescription("Picture of conti");
//这个名称要注意和文件格式一致,这将是接收人下载下来的文件名称
attachment.setName("conti.png");
//因为要上传附件,所以用MultiPartEmail()方法创建一个email对象,固定步骤都是一样的
MultiPartEmail email = new MultiPartEmail();
email.<