版权声明:本文为博主原创文章,转载需注明出处 http://www.cnblogs.com/yanfei1819/p/8708097.html.
在java web项目中,很多地方用到了发送邮件的功能,例如用户注册激活、发送邮箱验证码、发送项目的异常信息、发送通知、发送文件等等。
以下是闲暇之际写的一个小demo,此处以163的邮箱为例。以作参考。
首先引入mail.jar
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>
</dependency>
以下是核心代码
package com.software.fanfan.email;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
/**
* java邮件发送
* <p>
* Created by shiyanfei on 2018-04-03.
*/
public class EmailAction {
public static void main(String[] args) throws MessagingException {
// 邮箱配置(此处以163邮箱为例)
Properties prop = new Properties();
prop.put("mail.host", "smtp.163.com");
prop.put("mail.transport.protocol", "smtp");
prop.put("mail.smtp.auth", true);
Session session = Session.getInstance(prop);
session.setDebug(true);
Transport transport = session.getTransport();
// 发送邮箱的账号和密码
transport.connect("xxx@163.com", "xxx");
// 创建邮件
Message message = createMail(session);
// 发送邮件
transport.sendMessage(message, message.getAllRecipients());
}
/**
* 创建邮件
*
* @param session
* @return
* @throws MessagingException
*/
private static MimeMessage createMail(Session session) throws MessagingException {
//创建邮件对象
MimeMessage mimeMessage = new MimeMessage(session);
//设置发件人
mimeMessage.setFrom(new InternetAddress("yanfei1819@163.com"));
//设置收件人
mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@163.com"));
//设置抄送人
mimeMessage.setRecipient(Message.RecipientType.CC, new InternetAddress("xxx@163.com"));
// 设置邮件主题
mimeMessage.setSubject("第一封JAVA邮件!");
// 设置邮件内容
mimeMessage.setContent("这是我的第一封邮件", "text/html;charset=gbk");
return mimeMessage;
}
}