使用 apache的commons发送邮件
package com.email;
import com.email.pojo.EmailConfig;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.SimpleEmail;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date;
public enum EmailUtil {
/**
* 邮件发送服务单例
*/
INSTANCE;
/**
* 自定义的服务配置实体类
*/
private EmailConfig config = null;
private final Logger LOGGER = LoggerFactory.getLogger(EmailUtil.class);
EmailUtil() {
try {
init();
} catch (Throwable e) {
LOGGER.error("邮箱配置初始化异常", e);
}
}
/**
* 初始化邮件发送配置
*/
private void init() {
config = new EmailConfig();
config.setServerHost("smtp.163.com");
config.setServerName("xxxxx@163.com");
config.setServerPwd("xxxxx");
config.setSender("test@163.com");
LOGGER.info("EmailService config{}", config);
}
/**
* 发送邮件消息
*/
public void push() {
if (config == null) {
init();
}
SimpleEmail mail = new SimpleEmail();
// 设置邮箱服务器信息
mail.setSslSmtpPort("25");
mail.setHostName(config.getServerHost());
// 设置密码验证器
mail.setAuthentication(config.getServerName(), config.getServerPwd());
try {
// 防止成为垃圾邮件
mail.addHeader("X-Mailer", "Microsoft Outlook Express 6.00.2900.2869");
// 设置邮件发送者
mail.setFrom(config.getServerName());
// 设置邮件接收者
mail.addTo("xxx@qq.com");
// 设置邮件编码
mail.setCharset("UTF-8");
// 设置邮件主题
mail.setSubject("A story");
// 设置邮件内容
mail.setContent("Little Red Riding Hood", "text/html;charset=utf-8");
// 设置邮件发送时间
mail.setSentDate(new Date());
// 发送邮件
mail.send();
LOGGER.debug("发送邮件成功");
} catch (EmailException e) {
LOGGER.error("发送邮件失败{}", e);
}
}
/**
* 发送带附件邮件(该方法支持发送HTML消息和附件)
* 如果只是需要附件和文本也可以把HtmlEmail替换为MultiPartEmail
*
* @param strAttachFile 附件路径
* @param strAttachName 附件名称
*/
public void push(String strAttachFile, String strAttachName) {
if (config == null) {
init();
}
HtmlEmail mail = new HtmlEmail();
// 设置邮箱服务器信息
mail.setSslSmtpPort("25");
mail.setHostName(config.getServerHost());
// 设置密码验证器
mail.setAuthentication(config.getServerName(), config.getServerPwd());
try {
// 防止成为垃圾邮件
mail.addHeader("X-Mailer", "Microsoft Outlook Express 6.00.2900.2869");
// 设置邮件发送者
mail.setFrom(config.getServerName());
// 设置邮件接收者
mail.addTo("xxx@qq.com");
// 设置邮件编码
mail.setCharset("UTF-8");
// 设置邮件主题
mail.setSubject("A Link");
// 设置邮件内容
mail.setHtmlMsg("<a href=\"www.baidu.com\">百度一下,月入过万</a>");
// 设置邮件发送时间
mail.setSentDate(new Date());
// 添加附件
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(strAttachFile);
attachment.setName(strAttachName);
attachment.setDisposition(EmailAttachment.ATTACHMENT);
mail.attach(attachment);
// 发送邮件
mail.send();
} catch (EmailException e) {
LOGGER.error("发送邮件失败{}", e);
}
}
/**
* 获取服务配置
*
* @return 服务配置
*/
public EmailConfig getConfig() {
return config;
}
public void setConfig(EmailConfig config) {
this.config = config;
}
/**
* 刷新邮件配置
*/
public void refreshConfig() {
config = null;
init();
}
}