public classMailUtil {//修改为自己的qq邮箱账号
private staticString myEmailAccount= "******@qq.com";//修改为自己的邮箱授权码
private staticString myEmailPassword= "******";//如果用qq邮箱不用修改,如果用163邮箱,修改为smtp.163.com
private staticString myEmailSMTPHost= "smtp.qq.com";private static String sendUser = "呵呵";
/***@param @param收件人邮箱
*@param @param标题
*@param @param内容
*@param @throwsException void
*@throws* @Title: send
* @Description: TODO*/
public static void send(String receive, String title, String body) throwsException {//1. 创建参数配置, 用于连接邮件服务器的参数配置
Properties props = newProperties();//使用的协议(JavaMail规范要求)
props.setProperty("mail.transport.protocol","smtp");//发件人的邮箱的 SMTP 服务器地址
props.setProperty("mail.smtp.host", myEmailSMTPHost);//需要请求认证
props.setProperty("mail.smtp.auth","true");/** 需要SSL安全配置的需要以下配置
* SMTP 服务器的端口 (非SSL连接的端口一般默认为25, 可以不添加, 如果开启了SSL连接,
* 需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助,
* QQ邮箱的SMTP(SLL)端口为465或587,其他邮箱自行去查看)*/
final String smtpPort = "465";
props.setProperty("mail.smtp.port", smtpPort);
props.setProperty("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback" ,"false");
props.setProperty("mail.smtp.socketFactory.port", smtpPort);//2. 根据配置创建会话对象, 用于和邮件服务器交互
Session session =Session.getDefaultInstance(props);//设置为debug模式, 可以查看详细的发送 log
session.setDebug(true);//3. 创建一封邮件
MimeMessage message =createMimeMessage(session, myEmailAccount, receive, title, body);//4. 根据 Session 获取邮件传输对象
Transport transport =session.getTransport();//5.使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错
transport.connect(myEmailAccount,myEmailPassword);//6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
transport.sendMessage(message, message.getAllRecipients());//7. 关闭连接
transport.close();
}
/*** @Title: createMimeMessage
* @Description: TODO
*@param @paramsession 和邮件服务器交
* 互的会话对象
*@param @paramsendMail 发件人的邮箱帐
* 号
*@param @paramreceiveMail 收件人的邮
* 箱帐号
*@param @paramtitle 邮件主题
*@param @parambody 邮件内容
*@param @return创建的邮件对象
*@param @throwsException MimeMessag
* e
*@throws
*/
private static MimeMessage createMimeMessage(Session session, String sendMail,String receiveMail, String title, String body) throwsException {//1. 创建一封邮件
MimeMessage message = newMimeMessage(session);//2. From: 发件人(发件人邮箱地址,发件人名称, 编码格式)
message.setFrom(new InternetAddress(sendMail, sendUser,"UTF-8"));//3. To: 收件人(可以增加多个收件人、抄送、密送)
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail,"尊敬的用户" ,"UTF-8"));//4. Subject: 邮件主题
message.setSubject(title,"UTF8");//5. Content: 邮件正文(可以使用htm l标签)
message.setContent(body,"text/html; charset = UTF-8 ");//6. 设置发件时间
message.setSentDate(newDate());//7. 保存设置
message.saveChanges();returnmessage;
}