javamail,quartz,freemarker实现定时邮件模板发送(1)

一:邮件发送器:邮件服务器的参数(用户名,密码,smtp都放在配置文件中以便于修改)

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="javaMailProperties">
	<props>
	    <prop key="mail.smtp.auth">true</prop>
	    <!-- 使用gmail smtp server的必须参数 -->
	    <prop key="mail.smtp.starttls.enable">true</prop> 
	</props>
    </property>
</bean>

二:freemarker模板:

<!-- 用于生成HTML邮件内容的Freemarker配置 -->
<bean id="freemarkerConfiguration" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="classpath:email" />//模板存放在项目的位置
</bean>

<!-- MIME邮件服务类 -->
<bean id="mimeMailService" class="com.joinfun.nxy.core.helper.email.MimeMailService">
    <property name="mailSender" ref="mailSender"/>
    <property name="freemarkerConfiguration" ref="freemarkerConfiguration"/>
</bean>

三:quartz定时的配置

<!-- 要调用的工作类 -->
<bean id="quartzJob" class="com.joinfun.nxy.services.impl.email.SendClockEmailServiceImpl"  />
<!-- 定义调用对象和调用对象方法 -->
<bean id="jobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
	<!-- 调用的类 -->
	<property name="targetObject" ref="quartzJob" />
	<!-- 调用类中的方法 -->
	<property name="targetMethod">
		<value>sendClockEmail</value>
	</property>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean" >
	<property name="jobDetail" ref="jobTask" />
	<property name="cronExpression">
	    <value>0 30 8,17 * * ?</value><!-- 每天早上8点,下午6点  -->//www.becron.com
	</property>
</bean>
<!-- 总管理类 -->
<bean id="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	<property name="triggers">
	    <list>
		<ref bean="doTime" />
	    </list>
	</property>
</bean>

这样我们就配置好了,接下来就是后台的实现!

你可能感兴趣的:(javamail,quartz,freemarker实现定时邮件模板发送(1))