赞!
来源: https://www.codefans.net/articles/209.shtml
package com.hung.demo_1;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class JavaMailDemo {
private Properties props;
private Session session;
private MimeMessage message;
private MimeMultipart multipart;
/**
* 构造方法
* @param smtp邮件smtp服务器
*/
public JavaMailDemo(String smtp) {
if (props == null) {
props = System.getProperties();
}
props.put("mail.smtp.host", smtp);
}
/**
* 发送邮件
* @param subject邮件主题
* @param mailBody邮件主体
* @param addressee收件人
* @param copyto抄送
* @param addresser发件人
* @param userName电子邮件账户
* @param userPasswd电子邮件密码
* @return执行结果
*/
public boolean sendEmail(
String subject ,
String mailBody ,
String addressee ,
String copyto ,
String addresser ,
String userName ,
String userPasswd ){
// 获取邮件会话对象
try {
System.out.println("获取邮件会话对象!");
session = Session.getDefaultInstance(props, null);
} catch (Exception e) {
e.printStackTrace();
//获取失败
System.out.println("获取邮件会话对象失败!");
return false;
}
// 创建MIME邮件对象
try{
System.out.println("创建MIME邮件对象!");
message = new MimeMessage(session);
multipart = new MimeMultipart();
}catch (Exception e) {
e.printStackTrace();
// 创建MIME邮件对象失败
System.out.println("创建MIME邮件对象失败!");
return false;
}
// 定义邮件主题
try {
System.out.println("定义邮件主题!");
message.setSubject(subject);
} catch (Exception e) {
e.printStackTrace();
//定义邮件主题发生错误
System.out.println("定义邮件主题发生错误!");
return false;
}
// 定义邮件正文主体
try {
System.out.println("定义邮件正文主体!");
BodyPart bp = new MimeBodyPart();
bp.setContent("" + mailBody, "text/html;charset=GBK");
multipart.addBodyPart(bp);
} catch (Exception e) {
e.printStackTrace();
// 定义邮件正文失败
System.out.println("定义邮件正文失败!");
return false;
}
// 定义收信人!
try {
System.out.println("定义收信人!");
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(addressee));
} catch (Exception e) {
e.printStackTrace();
// 定义收件人失败
System.out.println("定义收件人失败!");
return false;
}
// 定义抄送
try {
System.out.println("定义抄送!");
message.setRecipients(
Message.RecipientType.CC,
(Address[]) InternetAddress.parse(copyto));
} catch (Exception e) {
e.printStackTrace();
// 定义抄送失败
System.out.println("定义抄送失败!");
return false;
}
// 定义发件人
try {
System.out.println(" 定义发件人!");
message.setFrom(new InternetAddress(addresser));
} catch (Exception e) {
e.printStackTrace();
// 定义发件人失败
System.out.println("定义发件人失败!");
return false;
}
// 发送邮件
try {
System.out.println("开始发送邮件...");
message.setContent(multipart);
message.saveChanges();
System.out.println("邮件发送中....");
Session mailSession = Session.getInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
transport.connect((String) props.get("mail.smtp.host"), userName, userPasswd);
transport.sendMessage(
message, message.getRecipients(Message.RecipientType.TO));
System.out.println("发送成功!");
transport.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("发送失败!");
return false;
}
return true;
}
/*
public static void main(String[] args) {
if(new JavaMailDemo("smtp.163.com").sendEmail(
"JavaMailDemo!",
"<html>" +
"<body>" +
"<center>" +
"<h1>Hello JavaMail!</h1>" +
"<a href=\"https://hung-hung.lofter.com\">查看我的微博!</a>" +
"</center>" +
"</body>" +
"</html>",
"XXX@XXX.com",
"XXX@XXX.com",
"XXX@XXX.com",
"XXX@XXX.com",
"***************")){
System.out.println("Done!");
}
}
*/
}