异步发送邮件

来源:互联网 发布:中央网络电视台手机版 编辑:程序博客网 时间:2024/05/17 04:41
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. */@Componentpublic class SendMail {@Resourceprivate 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() {@Overridepublic void run() {// 获取JavaMailSender beanMimeMessage 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 beanMimeMessage 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;}}


原创粉丝点击