spring和quartz进行定时邮件发送 (转)

一  发送邮件的基类:

Java代码 复制代码
  1. package com.spring.mail;    
  2.   
  3. import org.springframework.mail.MailSender;   
  4. //import org.springframework.mail.javamail.JavaMailSender;    
  5.   
  6. public abstract class BaseMailSender {   
  7.  protected String to;    
  8.   
  9.  protected String from;    
  10.   
  11.  protected String subject;    
  12.   
  13.  protected MailSender sender;   
  14.  //当发送的邮件为简单邮件时用MailSender即可;   
  15.     
  16.  //protected JavaMailSender sender;   
  17.  //当发送的邮件为MIMI时用JavaMailSender   
  18.  public void setTo(String to) {   
  19.   this.to = to;   
  20.  }    
  21.   
  22.  public void setFrom(String from) {   
  23.   this.from = from;   
  24.  }    
  25.   
  26.  public void setSubject(String subject) {   
  27.   this.subject = subject;   
  28.  }    
  29.   
  30.  public void setJavaMailSender (MailSender sender) {//(JavaMailSender sender) {   
  31.   this.sender = sender;   
  32.  }   
  33. }  
package com.spring.mail; 

import org.springframework.mail.MailSender;
//import org.springframework.mail.javamail.JavaMailSender; 

public abstract class BaseMailSender {
 protected String to; 

 protected String from; 

 protected String subject; 

 protected MailSender sender;
 //当发送的邮件为简单邮件时用MailSender即可;
 
 //protected JavaMailSender sender;
 //当发送的邮件为MIMI时用JavaMailSender
 public void setTo(String to) {
  this.to = to;
 } 

 public void setFrom(String from) {
  this.from = from;
 } 

 public void setSubject(String subject) {
  this.subject = subject;
 } 

 public void setJavaMailSender (MailSender sender) {//(JavaMailSender sender) {
  this.sender = sender;
 }
}

 发送邮件调用的类:

Java代码 复制代码
  1. package com.spring.mail;    
  2.   
  3. import javax.mail.MessagingException;    
  4.   
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;   
  6. import org.springframework.mail.SimpleMailMessage;    
  7.   
  8. public class SimpleHtmlMailSender extends BaseMailSender{    
  9.   
  10.  public void sendMessage() throws MessagingException {   
  11.   String textStr = "Helo!!!!!!!!!!!";//发送邮件的消息主体     
  12.   SimpleMailMessage msg = new SimpleMailMessage();     
  13.   msg.setTo(to);   
  14.   msg.setFrom(from);   
  15.   msg.setSubject(subject);   
  16.   msg.setText(textStr);     
  17.   sender.send(msg);   
  18.  }    
  19.   
  20.  public void doIt() throws Exception {    
  21.   
  22.   ClassPathXmlApplicationContext ctx1 = new ClassPathXmlApplicationContext(   
  23.     new String[] { "ApplicationContext.xml" });   
  24.   SimpleHtmlMailSender sender = (SimpleHtmlMailSender) ctx1.getBean("messageSender");   
  25.      
  26.   sender.sendMessage();   
  27.   System.out.println("发送成功");   
  28.  }   
  29. }  
package com.spring.mail; 

import javax.mail.MessagingException; 

import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage; 

public class SimpleHtmlMailSender extends BaseMailSender{ 

 public void sendMessage() throws MessagingException {
  String textStr = "Helo!!!!!!!!!!!";//发送邮件的消息主体  
  SimpleMailMessage msg = new SimpleMailMessage();  
  msg.setTo(to);
  msg.setFrom(from);
  msg.setSubject(subject);
  msg.setText(textStr);  
  sender.send(msg);
 } 

 public void doIt() throws Exception { 

  ClassPathXmlApplicationContext ctx1 = new ClassPathXmlApplicationContext(
    new String[] { "ApplicationContext.xml" });
  SimpleHtmlMailSender sender = (SimpleHtmlMailSender) ctx1.getBean("messageSender");
  
  sender.sendMessage();
  System.out.println("发送成功");
 }
}

 配置文件ApplicationContext:

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>    
  2.   
  3. <!DOCTYPE beans public "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd ">  
  4. <beans>  
  5.  <bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl">  
  6.   <property name="host">  
  7.    <value>smtp.163.com</value>  
  8.   </property>  
  9.    <property name="username">  
  10.     <value>tomcat0506</value>  
  11.   </property>  
  12.   <property name="password">  
  13.    <value>wes</value>  
  14.   </property>  
  15.          <property name="javaMailProperties">  
  16.     <props>  
  17.      <prop key="mail.smtp.auth">true</prop>  
  18.     </props>  
  19.          </property>  
  20.   </bean>  
  21.   <bean id="messageSender" class="com.spring.mail.SimpleHtmlMailSender">  
  22.   <property name="javaMailSender">  
  23.    <ref bean="sender"/>  
  24.     </property>  
  25.     <property name="to">  
  26.    <value>wes830506@126.com</value>  
  27.     </property>  
  28.     <property name="from">  
  29.     <value>tomcat0506@163.com</value>  
  30.     </property>  
  31.   <property name="subject">  
  32.    <value>test</value>  
  33.     </property>  
  34.   </bean>    
  35.   
  36.   
  37.  <bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">          
  38.      
  39.      
  40.   <!-- <property name="jobClass">  
  41.    <value>com.spring.mail.SimpleHtmlMailSender</value>  
  42.   </property>-->    
  43.   
  44.   <property name="targetObject"><ref bean="messageSender"/></property>           
  45.   <property name="targetMethod"><value>doIt</value></property>    
  46.   
  47.  </bean>    
  48.   
  49.  <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">  
  50.   <property name="jobDetail"><ref bean="methodInvokingJobDetail"/></property>  
  51.   <property name="startDelay">  
  52.    <!-- 3 seconds -->  
  53.    <value>3000</value>  
  54.   </property>  
  55.   <property name="repeatInterval">  
  56.    <!-- repeat every 6 seconds -->  
  57.    <value>6000</value>  
  58.   </property>  
  59.  </bean>    
  60.   
  61.   
  62.  <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  63.   <property name="jobDetail"> <ref bean="methodInvokingJobDetail"/></property>  
  64.   <property name="cronExpression"> <value>0 0 6,12,20 * * ?</value>  </property>     
  65.  </bean>    
  66.   
  67.  <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">    
  68.   <property name="triggers">  
  69.     <list>  
  70.     <ref local="simpleTrigger"/>  
  71.    </list>    
  72.   </property>      
  73.  </bean>  
  74. </beans>   
<?xml version="1.0" encoding="UTF-8"?> 

<!DOCTYPE beans public "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd ">
<beans>
 <bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
  <property name="host">
   <value>smtp.163.com</value>
  </property>
   <property name="username">
    <value>tomcat0506</value>
  </property>
  <property name="password">
   <value>wes</value>
  </property>
         <property name="javaMailProperties">
    <props>
     <prop key="mail.smtp.auth">true</prop>
    </props>
         </property>
  </bean>
  <bean id="messageSender" class="com.spring.mail.SimpleHtmlMailSender">
  <property name="javaMailSender">
   <ref bean="sender"/>
    </property>
    <property name="to">
   <value>wes830506@126.com</value>
    </property>
    <property name="from">
    <value>tomcat0506@163.com</value>
    </property>
  <property name="subject">
   <value>test</value>
    </property>
  </bean> 


 <bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">       
  
  
  <!-- <property name="jobClass">
   <value>com.spring.mail.SimpleHtmlMailSender</value>
  </property>--> 

  <property name="targetObject"><ref bean="messageSender"/></property>        
  <property name="targetMethod"><value>doIt</value></property> 

 </bean> 

 <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
  <property name="jobDetail"><ref bean="methodInvokingJobDetail"/></property>
  <property name="startDelay">
   <!-- 3 seconds -->
   <value>3000</value>
  </property>
  <property name="repeatInterval">
   <!-- repeat every 6 seconds -->
   <value>6000</value>
  </property>
 </bean> 


 <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail"> <ref bean="methodInvokingJobDetail"/></property>
  <property name="cronExpression"> <value>0 0 6,12,20 * * ?</value>  </property>  
 </bean> 

 <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
  <property name="triggers">
    <list>
    <ref local="simpleTrigger"/>
   </list> 
  </property>   
 </bean>
</beans> 

 二  mimi邮件发送  


在编写发送邮件程序时需要用到的类有一下几个:

 org.springframework.mail.javamail.JavaMailSender;
 //此类继承了spring里面的
 //MailSender接口--定义了两个简单的sender方法,用于发送简单的邮件信息,参数类型为:SimpleMailMessage([])
 //JavaMailSender类继承了上面方法后支持MIMI邮件,可以发MIMI消息
 org.springframework.context.support.ClassPathXmlApplicationContext;
 //spring里面读取配置文件时需要用到的类
 org.springframework.mail.javamail.MimeMessageHelper;
 //在发送MIMI消息时需要用到的辅助类  

 javax.mail.MessagingException;  
 javax.mail.internet.MimeMessage;
 //J2EE里面支持发送MIMe信息需要的类

例子:

发送邮件的基类

BaseMailSender  .java:

Java代码 复制代码
  1. import org.springframework.mail.javamail.JavaMailSender;   
  2. public abstract class BaseMailSender {   
  3.  protected String to;   
  4.  protected String from;   
  5.  protected String subject;   
  6.  protected JavaMailSender sender;//当发送MIMI消息时用到的类   
  7.   
  8.  public void setTo(String to) {   
  9.   this.to = to;   
  10.  }   
  11.  public void setFrom(String from) {   
  12.   this.from = from;   
  13.  }   
  14.  public void setSubject(String subject) {   
  15.   this.subject = subject;   
  16.  }   
  17.  public void setJavaMailSender(JavaMailSender sender) {   
  18.   this.sender = sender;   
  19.  }   
  20. }  
import org.springframework.mail.javamail.JavaMailSender;
public abstract class BaseMailSender {
 protected String to;
 protected String from;
 protected String subject;
 protected JavaMailSender sender;//当发送MIMI消息时用到的类

 public void setTo(String to) {
  this.to = to;
 }
 public void setFrom(String from) {
  this.from = from;
 }
 public void setSubject(String subject) {
  this.subject = subject;
 }
 public void setJavaMailSender(JavaMailSender sender) {
  this.sender = sender;
 }
}

 

发送邮件的类:

Java代码 复制代码
  1. package com.spring.mail;   
  2.   
  3. import javax.mail.MessagingException;   
  4. import javax.mail.internet.MimeMessage;   
  5.   
  6. import org.springframework.context.support.ClassPathXmlApplicationContext;   
  7. import org.springframework.mail.SimpleMailMessage;   
  8. import org.springframework.mail.javamail.MimeMessageHelper;   
  9.   
  10. public class SimpleHtmlMailSender extends BaseMailSender{   
  11.   
  12.  public void sendMessage() throws MessagingException {   
  13.      
  14.   //String htmlHead = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>";   
  15.   //String htmlBody = "";   
  16.   //String htmlEnd = "";   
  17.  // StringBuffer mailMessage = new StringBuffer();   
  18.   //mailMessage.append(htmlHead);   
  19.   //mailMessage.append(htmlBody);   
  20.   //mailMessage.append(htmlEnd);   
  21.      
  22.      
  23.   //当发送的邮件为简单邮件时注销此句     
  24.   String textStr = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body><h1><a href='#'>^_^!</a></h1></body></html>";   
  25.   
  26.   //String textStr = "Helo could you see this email?";//发送邮件的消息主体   
  27.      
  28.   //SimpleMailMessage msg = new SimpleMailMessage();   
  29.      
  30.   //当发送邮件为简单邮件时把此句注销即可   
  31.      
  32.   MimeMessage msg = sender.createMimeMessage();   
  33.   MimeMessageHelper helper = new MimeMessageHelper(msg, true"GB2312");   
  34.      
  35.   helper.setTo(to);   
  36.   helper.setFrom(from);   
  37.   helper.setSubject(subject);   
  38.   helper.setText(textStr, true);   
  39.   /*  
  40.   msg.setTo(to);  
  41.   msg.setFrom(from);  
  42.   msg.setSubject(subject);  
  43.   msg.setText(textStr);  
  44.   */  
  45.   sender.send(msg);   
  46.  }   
  47.   
  48.  public void doIt() throws Exception{//static void main(String[] args) throws Exception {//   
  49.   //ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[] { "springexample-creditaccount.xml" });   
  50.   
  51.   ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(   
  52.     new String[] { "ApplicationContext.xml" });   
  53.   
  54.   SimpleHtmlMailSender sender = (SimpleHtmlMailSender) ctx   
  55.     .getBean("messageSender");   
  56.   sender.sendMessage();   
  57.   System.out.println("发送成功");   
  58.  }   
  59. }  
package com.spring.mail;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.MimeMessageHelper;

public class SimpleHtmlMailSender extends BaseMailSender{

 public void sendMessage() throws MessagingException {
  
  //String htmlHead = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>";
  //String htmlBody = "";
  //String htmlEnd = "";
 // StringBuffer mailMessage = new StringBuffer();
  //mailMessage.append(htmlHead);
  //mailMessage.append(htmlBody);
  //mailMessage.append(htmlEnd);
  
  
  //当发送的邮件为简单邮件时注销此句  
  String textStr = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body><h1><a href='#'>^_^!</a></h1></body></html>";

  //String textStr = "Helo could you see this email?";//发送邮件的消息主体
  
  //SimpleMailMessage msg = new SimpleMailMessage();
  
  //当发送邮件为简单邮件时把此句注销即可
  
  MimeMessage msg = sender.createMimeMessage();
  MimeMessageHelper helper = new MimeMessageHelper(msg, true, "GB2312");
  
  helper.setTo(to);
  helper.setFrom(from);
  helper.setSubject(subject);
  helper.setText(textStr, true);
  /*
  msg.setTo(to);
  msg.setFrom(from);
  msg.setSubject(subject);
  msg.setText(textStr);
  */
  sender.send(msg);
 }

 public void doIt() throws Exception{//static void main(String[] args) throws Exception {//
  //ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[] { "springexample-creditaccount.xml" });

  ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(
    new String[] { "ApplicationContext.xml" });

  SimpleHtmlMailSender sender = (SimpleHtmlMailSender) ctx
    .getBean("messageSender");
  sender.sendMessage();
  System.out.println("发送成功");
 }
}

配置文件同上! 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值