平时我们在很多网站或者app上注册账户时绑定邮箱后,都会收到一封欢迎邮件或值需要进入邮箱进行账户激活,这些邮件和我们平时写邮件不同,它时通过java代码编好的程序,发件人、邮件内容都是编辑好的然后进行批量发送,下面就简单介绍下java mail实现简单的邮件发送。
一、准备工作
1、导入java mail的jar包
2、发件邮箱要设置授权码,也就是用于登录第三方邮件客户端的专用密码。本文已163邮箱为例,不同的邮箱设置可能不同
二、代码实现
package cn.qyy.Utils;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* 此类实现发送邮件
* @author huangwei
*
*/
public class SendMail {
public static void main(String[] args) {
boolean sendMail=sendMail("123456789@qq.com", "Hello");
System.out.println(sendMail);
}
public static boolean sendMail(String email, String emailMsg) {
// 邮件发送人的邮件地址
String from = "abcd1234@163.com";
// 邮件接收人的邮件地址
String to = email;
//发件人的邮件帐户
final String username = "abcd1234@163.com";
//发件人的邮箱密码 第三方的授权密码
final String password = "123456";
//定义Properties对象,设置环境信息
Properties props = new Properties();
//设置邮件服务器的地址
//设置发送邮件使用的协议 使用smtp协议
props.setProperty("mail.transport.protocol", "smtp");
// 指定的smtp服务器
props.setProperty("mail.smtp.host", "smtp.163.com");
///使用 STARTTLS安全连接
props.setProperty("mail.smtp.auth", "true");
//创建Session对象,session对象表示整个邮件的环境信息
Session session = Session.getInstance(props);
//设置输出调试信息
session.setDebug(true);
try {
//Message的实例对象表示一封电子邮件
MimeMessage message = new MimeMessage(session);
//设置发件人的地址
message.setFrom(new InternetAddress(from));
//设置主题
message.setSubject("欢迎!");
//设置邮件的文本内容
message.setText("Welcome to JavaMail World!");
//设置邮件的格式
message.setContent((emailMsg),"text/html;charset=utf-8");
//从session的环境中获取发送邮件的对象
Transport transport=session.getTransport("smtp");
//连接邮件服务器 smtp简单的邮件传输协议,默认端口号是25
transport.connect("smtp.163.com",25, username, password);
//设置收件人地址,并发送消息
transport.sendMessage(message,new Address[]{new InternetAddress(to)});
//关闭资源
transport.close();
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
}
}