Java Email
maven 依赖引入
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.1</version>
</dependency>
发邮件工具类
//Spring boot 读配置文件的相应内容
@Value("${email.name}")
package com.hzfh.common.utils.helper;
import com.hzfh.fmp.core.log.LogUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.util.HashMap;
import java.util.Properties;
/**
* com.hzfh.common.utils
* 发送邮件工具类
* @Project: hrm
* @Author: rencc
* @Description:
* @Date: 2018/7/13 9:05
* @Source: Created with IntelliJ IDEA.
*/
@Component
public class EmailHelper {
/*发件人名称*/
@Value("${email.name}")
private String name;
/*发件人电子邮箱*/
@Value("${email.account}")
private String fromAccount;
/*发件人电子邮箱密码*/
@Value("${email.password}")
private String fromPassword;
/*邮件服务器主机*/
@Value("${email.host}")
private String host;
//日志打印,根据自己实际情况调用
private static Logger logger = LogUtils.getExceptionLogger();
/**
* 发送Html格式邮件
* @param map account,title,content
* @throws Exception
*/
public void sendEmail(HashMap<String,Object> map) throws Exception {
// 收件人电子邮箱
String to = String.valueOf(map.get("account"));
//邮件标题
String title = String.valueOf(map.get("title"));
//邮件内容
Object content = map.get("content");
// 获取系统属性
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.transport.protocol", "smtp");
properties.setProperty("mail.smtp.port", "25");
properties.setProperty("mail.smtp.auth", "true");
// 获取默认session对象
Session session = Session.getDefaultInstance(properties,new Authenticator(){
@Override
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(fromAccount, fromPassword); //发件人邮件用户名、密码
}
});
// 创建默认的 MimeMessage 对象。
MimeMessage message = new MimeMessage(session);
// Set From: 头部头字段
message.setFrom(new InternetAddress(fromAccount,name));
// Set To: 头部头字段
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// Set Subject: 头字段,采用gb2312防止中文乱码
message.setSubject(MimeUtility.encodeText(title,MimeUtility.mimeCharset("gb2312"), null));
// 发送 HTML 消息, 可以插入html标签,采用gb2312防止中文乱码
message.setContent(content,"text/html;charset=gb2312" );
// 发送消息
Transport.send(message);
logger.info("【邮件日志】:Account =>"+ to +" Result => Sent message successfully....");
}
}
调用参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
account | 是 | string | 收件人电子邮箱 |
title | 是 | string | 邮件标题 |
content | 是 | Object | 邮件内容 |
注:163等邮箱有防垃圾邮件拦截,在Html尽量不要使用图片进行base64传输,容易被拦截。