发送邮件公用类(此类可随意拷贝他用):
/**
* @ClassName:SendMail
* @Description TODO:邮件发送,title String类型,为邮件标题;content String类型,为邮件内容;mailTo String类型,为邮件接收人地址
* @Date:2012-10-22下午04:26:15
*/
public class SendMail {
public static boolean sendMail(String title,String content , String mailTo){
JavaMailSenderImpl senderimpl = new JavaMailSenderImpl();
//设置发信邮箱的smtp
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
senderimpl.setJavaMailProperties(properties);
//设定 mail server
senderimpl.setHost("smtp.163.com");
//用户名密码
senderimpl.setUsername("test");
senderimpl.setPassword("123456");
//邮箱认证
String from = "test@163.com";
//建立邮件消息
MimeMessage mimeMessage = senderimpl.createMimeMessage();
MimeMessageHelper messagehelper;
try{
//第2个参数表示是否为multipart邮件,第3个参数表示MimeMessage的编码
messagehelper = new MimeMessageHelper(mimeMessage,true,"utf-8");
//设置邮件主题
messagehelper.setSubject(title);
//设置邮件内容
messagehelper.setText(content, true);
//设置收件人
messagehelper.setTo(mailTo);
//设置发件人
messagehelper.setFrom(from);
//发送邮件
senderimpl.send(mimeMessage);
return true;
}catch(MessagingException e1){
e1.printStackTrace();
}
catch(Exception e){
e.printStackTrace();
}
return false;
}
}
处理业务数据,编排HTML格式内容,继承Quartz,调用sendMail()
(quartz是一个全由Java编写的以调度器为核心功能的框架,及其易用)
public class QuartzMail extends QuartzJobBean {
@Override
protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
WorkCalendarDao dao = new WorkCalendarDao();
List<WorkCalendarVo> listVo = dao.findContent();
String title = "邮件标题:日程提醒";
String context = "";
int i = 0 ;
for(WorkCalendarVo vo : listVo){
context = "<font size='15'> "+i+"、"+vo.getPlan_content()+"</font><br>";
String contextMail = "<html><meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"><body><font size='30' color='red'>dddddddd</font>" +
"<br><font size='16'>您好!</font><br><font size='15'> 在您的日程安排中,有以下事情需要您的处理!</font><br>" +
context+
"<font size='15'> 特此提醒!</font><br>" +
"<font size='15'> </font>" +new Date()+
"</body></html>";
String email = vo.getEmail();
SendMail.sendMail(title, contextMail, email);
//vo.setIs_send("1");
//dao.update(vo);
System.out.println("Send Success.....");
}
}
}
配置quartz定时触发器,定时启动QuartzMail类,发送邮件
<!--日程管理定时发送邮件 -->
<!--自动启动 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="cronTrigger"></ref>
</list>
</property>
</bean>
<!--配置触发器 --> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="sendMailJob"></property> <property name="cronExpression" value="0 0 17 * * ?" /><!--每天定时下午5点发送邮件--></bean>
<!-- 定义Job内容 --> <bean name="sendMailJob" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobDataAsMap"> <map> <entry key="timeout" value="10"></entry> </map> </property> <property name="jobClass" value="com.workCalendar.action.QuartzMail"><!--启动邮件业务类--> </property> </bean>