线程池 批量发邮件

首先是实现类:

public class EmailFast implements Runnable {
    private  String str;
    public EmailFast(String str){
        this.str=str;
    }
    @Override
    public void run() {
        JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
        // 设定mail server
        senderImpl.setHost("smtp.sh-xxx.com");
        senderImpl.setPort(465);
        senderImpl.setUsername("xxx@sh-xxx.com");               // 根据自己的情况,设置发件邮箱地址
        senderImpl.setPassword("xxx");          // 根据自己的情况, 设置password
        senderImpl.setDefaultEncoding("UTF-8");
        Properties prop = new Properties();
        prop.put("mail.smtp.auth", "true");                 // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
        prop.put("mail.smtp.ssl.enable", "true");
        prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        senderImpl.setJavaMailProperties(prop);

        MimeMessage mailMessage = senderImpl.createMimeMessage();
        MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);
        // 设置收件人,寄件人
        try {
            messageHelper.setTo("xxx@sh-xxx.com");

            messageHelper.setFrom("xxx@sh-xxx.com");
            messageHelper.setSubject("xxx提醒");
            // true 表示启动HTML格式的邮件
            messageHelper.setText(str, true);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        senderImpl.send(mailMessage);

    }
}

 

 

然后是配置线程:

 @Override
    public void sendEmail(String str) throws MessagingException {
        BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>();
        ThreadPoolExecutor executor = new ThreadPoolExecutor(8, 12, 15, TimeUnit.MILLISECONDS,
                workQueue, new ThreadPoolExecutor.CallerRunsPolicy());
        EmailFast ef=new EmailFast(str);
        executor.execute(ef);
        System.out.println("线程池中线程数目:"+executor.getPoolSize()+",队列中等待执行的任务数目:"+
                executor.getQueue().size()+",已执行玩别的任务数目:"+executor.getCompletedTaskCount());


    }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值