邮件推送实例,使用spring的注解方式
来源:互联网 发布:淘宝拍照摄影棚制作 编辑:程序博客网 时间:2024/05/21 15:49
主要把老大的一点拆出来,以后随时使用,学习老大的:
package org.tools.mail;import java.io.File;import java.util.Date;import java.util.Set;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.mail.javamail.MimeMessageHelper;import org.tools.spring.SpringContextUtil;/** * @ClassName PushMail * @date 2016年11月6日 * @version 1.0 * @description 邮件推送工具类 多线程执行不关心结果 */public class PushMail {private static JavaMailSenderImpl mailSender;static ExecutorService pool = Executors.newCachedThreadPool();static {mailSender = SpringContextUtil.getBean("mailSender", JavaMailSenderImpl.class);}/** * @param mail * @date 2016年11月6日 * @version 1.0 * @description 推送文本格式邮件 */public static void pushText(final TextMail mail) {pool.execute(new Runnable() {@Overridepublic void run() {SimpleMailMessage message = new SimpleMailMessage();message.setTo(mail.getTo());message.setFrom(mailSender.getUsername());message.setSubject(mail.getSubject());message.setText(mail.getText());message.setSentDate(new Date());mailSender.send(message);}});}/** * @param mail * @date 2016年11月6日 * @version 1.0 * @description 推送富文本格式邮件包括附件 */public static void pushHtml(final HtmlMail mail) {pool.execute(new Runnable() {@Overridepublic void run() {MimeMessage mimeMessage = mailSender.createMimeMessage();try {MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);helper.setTo(mail.getTo());helper.setFrom(mailSender.getUsername());helper.setSubject(mail.getSubject());helper.setText(mail.getText(), true);helper.setSentDate(new Date());Set<File> files = mail.getFiles();if (files != null) {for (File file : files) {helper.addAttachment(file.getName(), file);}}mailSender.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}});}}
package org.tools.mail;/** * @ClassName TextMail * @date 2016年11月6日 * @version 1.0 * @description 文本格式邮件 */public class TextMail {/** * @Fields <font color="blue">to</font> * @description 发送对象 多个以数组形势 */private String[] to;/** * @Fields <font color="blue">subject</font> * @description 邮件主题 */private String subject;/** * @Fields <font color="blue">text</font> * @description 文本内容 */private String text;public TextMail() {}public TextMail(String[] to, String subject, String text) {this.to = to;this.subject = subject;this.text = text;}public TextMail(String to, String subject, String text) {this.to = new String[] { to };this.subject = subject;this.text = text;}public String[] getTo() {return to;}public void setTo(String[] to) {this.to = to;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public String getText() {return text;}public void setText(String text) {this.text = text;}}
package org.tools.mail;import java.io.File;import java.util.Date;import java.util.Set;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.mail.javamail.MimeMessageHelper;import org.tools.spring.SpringContextUtil;/** * @ClassName PushMail * @date 2016年11月6日 * @version 1.0 * @description 邮件推送工具类 多线程执行不关心结果 */public class PushMail {private static JavaMailSenderImpl mailSender;static ExecutorService pool = Executors.newCachedThreadPool();static {mailSender = SpringContextUtil.getBean("mailSender", JavaMailSenderImpl.class);}/** * @param mail * @date 2016年11月6日 * @version 1.0 * @description 推送文本格式邮件 */public static void pushText(final TextMail mail) {pool.execute(new Runnable() {@Overridepublic void run() {SimpleMailMessage message = new SimpleMailMessage();message.setTo(mail.getTo());message.setFrom(mailSender.getUsername());message.setSubject(mail.getSubject());message.setText(mail.getText());message.setSentDate(new Date());mailSender.send(message);}});}/** * @param mail * @date 2016年11月6日 * @version 1.0 * @description 推送富文本格式邮件包括附件 */public static void pushHtml(final HtmlMail mail) {pool.execute(new Runnable() {@Overridepublic void run() {MimeMessage mimeMessage = mailSender.createMimeMessage();try {MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);helper.setTo(mail.getTo());helper.setFrom(mailSender.getUsername());helper.setSubject(mail.getSubject());helper.setText(mail.getText(), true);helper.setSentDate(new Date());Set<File> files = mail.getFiles();if (files != null) {for (File file : files) {helper.addAttachment(file.getName(), file);}}mailSender.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}});}}
<!--开启这个配置,spring才能识别@Scheduled注解 --><task:scheduler id="scheduler" pool-size="10" /><task:executor id="executor" pool-size="5-10" queue-capacity="200" rejection-policy="CALLER_RUNS" /><task:annotation-driven executor="executor" scheduler="scheduler" />
@Componentpublic class MailServiceTask {/** * @date 2017年7月27日 * @version 1.0 * @description 午餐点餐提醒 */@Scheduled(cron = "0 0 11 ? * MON-FRI")public void drinkTask() {PushMail.pushText(new TextMail(Prompt.bundle("system.mail.drink.user.list").split(","), "定时点餐提醒", "同志们你们滴外卖点了么?再不点十二点可能就送不到了哟"));}
@Scheduled(cron = "0 0 9-18/2 ? * MON-FRI")public void lovePushTask() {PushMail.pushText(new TextMail("********@qq.com".split(","), "你好", "现在在干嘛?"));}
阅读全文
0 0
- 邮件推送实例,使用spring的注解方式
- Spring+SpringMVC+mybatis+easyui整合实例(二)注解方式的mybatis的使用
- spring 4.0 AOP (使用AspectJ的注解方式 的aop实现)简单实例
- 8.2.Spring注解的使用实例
- 使用Spring的注解方式实现AOP
- 使用Spring的注解方式实现AOP
- 使用Spring的注解方式实现AOP
- spring注解缓存的使用方式
- Spring使用注解的方式实现AOP
- 使用Spring的注解方式实现AOP
- 使用Spring的注解方式实现AOP
- 使用Spring的注解方式实现AOP
- 使用Spring的注解方式实现AOP
- 注解方式使用spring aop的步骤
- spring使用注解方式的初始化流程
- 使用Spring的注解方式实现AOP
- 使用Spring的注解方式实现AOP
- 使用Spring的注解方式实现AOP
- Windows下MongoDB的安装使用以及IDEA插件配置
- 【一个女人出轨后的反思】 她…
- 【想要让优质男人为你著迷,女人可…
- 【身旁受欢迎的人,都拥有这几项自…
- 【致每个努力生活的你:日子这么苦…
- 邮件推送实例,使用spring的注解方式
- 【静下来,才知道人生要什么】静下…
- 【关于外遇、劈腿与第三者的9个问…
- json和String转换
- 【分开以后,每天追踪对方的脸书】…
- 【分手是我提的,但前任好像很痛苦…
- 【我是个女人,但我更是我自己】现…
- 【一颗想复合的心,才会让你掉入爱…
- 【恋人的课题:吵不停又放不下的关…