package com.dg11185.zhjy.commonUtils;
import java.io.File;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import javax.annotation.Resource;
import javax.mail.internet.MimeMessage;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
/**
* 分页的工具类
*
* @author 黄文韬
* @since 1.0
* @Copyright 2013 东莞市邮政局All rights reserved.
*/
@Component
public class SendMail {
@Resource
private JavaMailSenderImpl sender;
private String fromEmail;
private String subject;
private Executor executor = Executors.newFixedThreadPool(5);// 设置线程数
/**
* 发送邮件的方法
*
* @param toEmail
* 接收者邮箱
* @param emailText
* 需要发送的内容,需要以<html>的格式
* @since 1.0
*/
public void send(final String toEmail, final String emailText) {
Runnable task = new Runnable() {
@Override
public void run() {
// 获取JavaMailSender bean
MimeMessage mailMessage = sender.createMimeMessage();
// 设置utf-8或GBK编码,否则邮件会有乱码
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(
mailMessage, true, "utf-8");
messageHelper.setTo(toEmail);// 接受者
messageHelper.setFrom(fromEmail);// 发送者
messageHelper.setSubject(subject);// 主题
// 邮件内容,注意加参数true
// 注意,这里的内容必须要要是html格式:<Html><head></head></html>
messageHelper.setText(emailText, true);
// 这里的方法调用和插入图片是不同的,使用MimeUtility.encodeWord()来解决附件名称的中文问题
sender.send(mailMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
};
// 使用Executor框架的线程池执行邮件发送任务
executor.execute(task);
}
/**
* 发送邮件的方法(重载)
*
* @param toEmail
* 接收者邮箱
* @param emailText
* email的内容,需要以<html>的格式
* @param imgUrl
* 图片路径
* @since 1.0
*/
public void send(String toEmail, String emailText, String imgUrl) {
// 获取JavaMailSender bean
MimeMessage mailMessage = sender.createMimeMessage();
// 设置utf-8或GBK编码,否则邮件会有乱码
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(
mailMessage, true, "utf-8");
messageHelper.setTo(toEmail);// 接受者
messageHelper.setFrom(fromEmail);// 发送者
messageHelper.setSubject(subject);// 主题
// 邮件内容,注意加参数true
// 注意,这里的内容必须要要是html格式:<Html><head></head></html>
messageHelper
.setText(
"<html><head><meta http-equiv='Content-Type' content='text/html;charset=gb2312'></head><body>"
+ "<img src='cid:imgU'/>恭喜您,XXX用户注册成功,点击此链接激活用户:XXXXXXX</body></html>",
true);
FileSystemResource imgRs = new FileSystemResource(new File(imgUrl));
messageHelper.addInline("imgU", imgRs);
sender.send(mailMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
public String getFromEmail() {
return fromEmail;
}
public void setFromEmail(String fromEmail) {
this.fromEmail = fromEmail;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
}
异步发送邮件
最新推荐文章于 2023-08-01 18:25:00 发布