去https://github.com/javaee/javamail/releases下载javamail.jar包导入项目
1、发送普通邮件
@Test
public void test1() {
// 1、得到Session,需要2个东西Properties和Authenticator
Properties props = new Properties();
// 设置发件人SMTP服务器地址
props.setProperty("mail.smtp.host", "smtp.163.com");
// 设置用户的认证方式
props.setProperty("mail.smtp.auth", "true");
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// TODO Auto-generated method stub
return new PasswordAuthentication("邮箱用户名没有@后缀", "邮箱密码");
}
};
//得到Session
Session session = Session.getInstance(props, authenticator);
session.setDebug(true);
// 2、通过session,创建邮件主体
MimeMessage message = new MimeMessage(session);
try {
Address address = new InternetAddress("xxxxxxx@163.com", "东方不败");//东方不败是别名,不写也行,显示邮箱用户名
message.setFrom(address);//设置发送者
message.setRecipients(RecipientType.TO, "xxxxx@qq.com");
message.setSubject("主题是:这个一个测试邮件");
message.setContent("邮件主题内容就是这里", "text/html;charset=UTF-8");
// 3.发送邮件
Transport.send(message);
System.out.println("发送成功");
} catch (Exception e) {
e.printStackTrace();
}
}
2、发送带附件的邮件
@Test
public void test2() {
// 1、得到Session
Properties props = new Properties();
// 设置发件人SMTP服务器地址
props.setProperty("mail.smtp.host", "smtp.163.com");
// 设置用户的认证方式
props.setProperty("mail.smtp.auth", "true");
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// TODO Auto-generated method stub
return new PasswordAuthentication("xxxxx", "xxxx");//用户名和密码
}
};
Session session = Session.getInstance(props, authenticator);
session.setDebug(true);
// 2、通过session,创建邮件主体
MimeMessage message = new MimeMessage(session);
try {
Address address = new InternetAddress("xxxxx@163.com", "东方不败");
message.setFrom(address);//发送者
message.setRecipients(RecipientType.TO, "xxxxx@qq.com");//接收者
message.setSubject("主题是:这个一个带附件的邮件");
Multipart mp = new MimeMultipart();//多部件邮件体
//普通文本
BodyPart part0 = new MimeBodyPart();
part0.setContent("邮件主题内容就是这里", "text/html;charset=UTF-8");
mp.addBodyPart(part0);
//附件一通过setDataHandler设置附件内容
BodyPart part1 = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("d:\\mvc.html"));
part1.setDataHandler(dh);
part1.setFileName("mvc.html");
mp.addBodyPart(part1);
//附件二通过setDataHandler设置附件内容,getFileName
MimeBodyPart part2 = new MimeBodyPart();
part2.attachFile("D:\\f\\虫子.jpg");
part2.setFileName(part2.getFileName());
mp.addBodyPart(part2);
//附件三MimeBodyPart.attachFile添加附件内容,比较简单,MimeUtility.encodeText("虫子.jpg")解决中文乱码
MimeBodyPart part3 = new MimeBodyPart();
part3.attachFile("D:\\f\\虫子.jpg");
part3.setFileName(MimeUtility.encodeText("虫子.jpg"));
mp.addBodyPart(part3);
message.setContent(mp);
// 3.发送邮件
Transport.send(message);
System.out.println("发送成功");
} catch (Exception e) {
e.printStackTrace();
}
}