如何使用activemq发送电子邮件

时间:2014-04-07 10:59:56

标签: spring scheduled-tasks activemq javax.mail

我是这个activemq的新手,我想使用activemq数据每小时发送一封电子邮件。如何在activemq中配置此调度过程?这个动作有没有教程?

1 个答案:

答案 0 :(得分:3)

这是一个非常通用的问题,但我可以给你一些关于使用Spring的日程安排的提示:

  1. 如果您还没有Spring Context Support软件包,请在您的依赖项中包含它。如果您正在使用Maven,那么您可以找到依赖关系here

  2. 创建一个实际发送邮件的org.quartz.Job实现。我会使用Spring提供的QuartzJobBean。 注意:实际上有一个org.quartz.jobs.ee.mail.SendMailJob类可以进行邮件发送。 在这两种情况下,您都可以从ActiveMQ实例中检索数据并为邮件生成所需的内容。

    public class SendMailFromActiveMQ extends QuartzJobBean {
    @Override
    protected void doExecuteInternal(ApplicationContext applicationContext, JobExecutionContext jobExecutionContext) {
        //generate content for email
        //send email
    }
    

    }

  3. 将org.quartz.Job实现附加到应用程序上下文定义中的JobDetailBean bean:

  4. <bean id="sendEmailJob" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="ro.oneandone.hosting.ebusiness.nlt.sending.quartz.SendRegularMessagesJob" />
    </bean>
    
    1. 为以前的JobDetailBean bean创建一个CronTrigger:
    2.     <bean id="sendEmailCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
              <property name="jobDetail" ref="sendEmailJob" />
              <property name="cronExpression" value="0 0 0/1 * * ?" />
              <!-- Run every hour -->
      </bean>
      
      1. 要完成,请将作业注册到SchedulerFactoryBean:
      2. <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <property name="triggers">
            <list>
              <ref bean="sendEmailCronTrigger"/>
            </list>
           </property>
        </bean>
        

        我再说一遍,这只是一个大纲。你必须根据你的需要调整代码,我希望我能正确理解,因为你用&#34; Spring&#34;标记了这个问题。

        如果您需要以下链接,请参阅有关Quartz调度的更多信息: