java集成spring异步发送邮件

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("[email protected]");
			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> 

猜你喜欢

转载自408516584.iteye.com/blog/2278781