java 多线程发送邮件_多线程实现发送邮件功能

通过Internet发送邮件,可能会在网络传输上面使用较多的时间,如果调用发送邮件的线程与发送邮件线程是同一个的话,那么有可能会照成系统等待较长的时间而无法继续执行,影响系统效率。

那么这时可考虑使用多线程,实现异步发送,而不用等待邮件发送者的返回。

首先,是发送邮件的抽象任务类。其子类负责发送邮件操作。

public abstract class AbstractTask implements Runnable {

private IEmailSenderListener iEmailSenderListener;

private Log log = LogFactory.getLog(AbstractTask.class);

/* (non-Javadoc)

* @see java.lang.Runnable#run()

*/

@Override

public void run() {

if(iEmailSenderListener != null){

// 操作开始响应事件

iEmailSenderListener.beforeSendEmail();

}

boolean flag = false;

try{

flag = doAction();

}catch(Exception e){

if(iEmailSenderListener != null){

iEmailSenderListener.catchException(e);

}

log.error(e,e.fillInStackTrace());

e.printStackTrace();

}

if(iEmailSenderListener != null){

// 操作完成之后

iEmailSenderListener.afterSendEmail(flag);

}

}

public abstract boolean doAction() throws Exception;

}

发送邮件实现类:

public class EmailSendTask extends AbstractTask{

private JavaMailSender javaMailSender;

SimpleMailMessage simpleMailMessage;

MimeMessage mimeMessage;

public EmailSendTask(

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值