1.需要一个jar包 mail.jar
2.以qq邮件为例:邮件发送方需在qq邮件官网中的设置下开通POP3/SMTP服务,获取下述代码中的密码(代码中的密码非qq邮箱密码)。
3.代码
public class SendMail {
//smtp服务器地址
private static final String
host="smtp.qq.com";
//端口号
private static final String
port="56a2e03493a06e61e060957c72dcc72b";
//发送人
private static final String user="[email protected]";
//密码
private static final String password="xxxxxxxxxxxxxx";
//receive 收件人 subject 主题 context 发送内容
public static void send(String receive,String subject,String context) throws Exception {
Properties prop = new Properties();
prop.setProperty("mail.smtp.host", host);
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.smtp.port", port);
//使用JavaMail发送邮件的5个步骤
//1、创建session
Session session = Session.getInstance(prop);
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。
ts.connect(host, user, password);
//4、创建邮件
Message message = createSimpleMail(session, user, receive,subject,context);
//5、发送邮件
ts.sendMessage(message, message.getAllRecipients());
ts.close();
}
public static MimeMessage createSimpleMail(Session session,String user,String receive,String subject,String context)
throws Exception {
//创建邮件对象
MimeMessage message = new MimeMessage(session);
//指明邮件的发件人
message.setFrom(new InternetAddress(user));
//指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
//message.setRecipient(Message.RecipientType.TO, new InternetAddress(receive));
// 收件人(可以增加多个收件人、抄送、密送)
InternetAddress[] sendTo = InternetAddress.parse(receive);
message.setRecipients(MimeMessage.RecipientType.TO, sendTo);
//邮件的标题
message.setSubject(subject);
//邮件的文本内容
message.setContent(context, "text/html;charset=UTF-8");
//返回创建好的邮件对象
return message;
}
}