package com.goujia.ges.common.helper;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import com.goujia.ges.common.util.SSLUtils;
/**
* 邮件发送器
*
* @author xieshangzhen
* @date 2015年9月28日
* @version 1.0
*/
public class MailSender {
private static final Logger logger = LoggerFactory
.getLogger(MailSender.class);
private JavaMailSender mailSender;
private Executor executor = Executors.newFixedThreadPool(10);
public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
/**
* 邮件发送同步
* @param to 接收方
* @param subject 主题
* @param content 内容
* @throws Exception
*/
public void sendMail(final String to, final String subject,
final String content) throws Exception {
//SSLUtils.ignoreSsl();
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true,
"utf-8");
helper.setTo(to);
helper.setFrom("goujia@goujiawang.com");
helper.setSubject(subject);
helper.setText(content, true);
mailSender.send(message);
logger.info("mail already send");
} catch (MessagingException e) {
logger.error("generate mail fialure");
e.printStackTrace();
}
}
/**
* 邮件发送异步
* @param to 接收方
* @param subject 主题
* @param content 内容
*/
public void sendMailAsync(final String to, final String subject,
final String content) {
Runnable task = new Runnable() {
@Override
public void run() {
try {
sendMail(to, subject, content);
} catch (Exception e) {
e.printStackTrace();
}
}
};
executor.execute(task);
}
}
?
<beans:bean class="com.goujia.ges.common.helper.MailSender">
<beans:property name="mailSender" ref="javaMailSender"></beans:property>
</beans:bean>
<beans:bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<beans:property name="host" value="smtp.qq.com" />
<beans:property name="port" value="25" />
<beans:property name="username" value="" />
<beans:property name="password" value="" />
<!-- SMTP服务器验证 -->
<beans:property name="javaMailProperties">
<beans:props>
<!-- 验证身份 -->
<beans:prop key="mail.smtp.auth">true</beans:prop>
<beans:prop key="mail.smtp.timeout">25000</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
?
原文:http://408516584.iteye.com/blog/2278781