spring整合javamail跟quartz实现定时发送邮件

1.spring 整合 javamail  ---applicationContext-javamail-beans.xml

代码为:




 		
	  
          
          
          
          
          
         
          
          
          
          
               
                 true  
                 25000  
               
          
	  

 
  
2.spring整合 quartz; applicationContext-javamail-quartz.xml	
	代码为:


	
	
	
		   
		   
		  
	

 
  
	
	
		
			
			
				
						    
						    	
								    
								    
								    
								
						    
						    
						         0 0/1 * * * ?
						    
				
			
		
	
	

3.spring根文件中引入 以上两个xml文件
	代码为:        

4.实现定时器调度类(com.hc360.logistics.thread.SendMailTask)
	代码为:
package com.hc360.logistics.thread;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.hc360.logistics.service.SendService;

/**
 * 定时发送邮件
 * @author mwang
 */
public class SendMailTask {
	private final static Logger log = LoggerFactory.getLogger(SendMailTask.class);
	@Autowired
	private SendService sendServiceImpl; 
	private void run() {
		sendServiceImpl.send();  //邮件发送方法
		log.info("发送邮件了...");
	}
}
5.一个获取JavaMailSender 的类 : MailSenderFactory.java
	代码为:
package com.hc360.logistics.common.util;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.javamail.JavaMailSender;
public class MailSenderFactory {  
    // 获取JavaMailSender bean   
    public static JavaMailSender getJavaMailSender() {  
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-javamail-beans.xml");  
        return (JavaMailSender) context.getBean("mail");  
    }  
}  
6.一个发送的接口(实现类为:文本的,html样式的,附件的(此处只写html的))(SendService) 代码为:
package com.hc360.logistics.service;

public interface SendService {
	 public void send();  
}

7.实现类为:SendHtmlMailServiceImpl.java
 
  
	代码为:

package com.hc360.logistics.service.impl;
import java.util.Date;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import com.hc360.logistics.common.util.MailSenderFactory;
import com.hc360.logistics.service.SendService;

@Service
public class SendHtmlMailServiceImpl implements SendService {
	@Override
	public void send() {
		JavaMailSender mailSender = MailSenderFactory.getJavaMailSender();
		MimeMessage mimeMessage = mailSender.createMimeMessage();
		try {
			System.out.println("HTML脚本形式邮件正在发送...");
			// 设置utf-8或GBK编码,否则邮件会有乱码
			MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true,
					"UTF-8");
			// 设置发送人名片
			helper.setFrom("[email protected]");
			// 设置收件人名片和地址
			helper.setTo(new InternetAddress("\""
					+ MimeUtility.encodeText("sina邮箱") + "\" "));// 发送者
			// 邮件发送时间
			helper.setSentDate(new Date());
			// 设置回复地址
			helper.setReplyTo(new InternetAddress("[email protected]"));
			// 设置抄送的名片和地址
			helper.setCc(InternetAddress.parse(MimeUtility.encodeText("抄送人001")
					+ " ," + MimeUtility.encodeText("抄送人002")
					+ " "));
			// 主题
			helper.setSubject("主题");
			// 邮件内容,注意加参数true,表示启用html格式
			helper.setText(
					"

hello!!我是乔布斯

", //此处可以写html标签来拼装样式 true); // 发送 mailSender.send(mimeMessage); } catch (Exception e) { e.printStackTrace(); } System.out.println("HTML脚本形式邮件发送成功!!!"); } }

8.遇见问题:
 
  
	geronimo-spec-javamail-1.3.1-rc3.jar  此包会出现包冲突问题,最好使用mail.jar
	
 
  

你可能感兴趣的:(j2ee)