...
|
...
|
@@ -7,10 +7,15 @@ import org.slf4j.LoggerFactory; |
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.mail.javamail.JavaMailSenderImpl;
|
|
|
import org.springframework.mail.javamail.MimeMessageHelper;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.mail.MessagingException;
|
|
|
import javax.mail.internet.MimeMessage;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.ArrayBlockingQueue;
|
|
|
import java.util.concurrent.BlockingQueue;
|
|
|
|
|
|
/**
|
|
|
* Created by yoho on 2016/7/6.
|
...
|
...
|
@@ -20,25 +25,39 @@ public class MailServiceImpl implements MailService { |
|
|
|
|
|
protected static final Logger logger = LoggerFactory.getLogger(MailServiceImpl.class);
|
|
|
|
|
|
private BlockingQueue<Mail> blockingQueue = new ArrayBlockingQueue<Mail>(5000);
|
|
|
|
|
|
@Autowired
|
|
|
private JavaMailSenderImpl senderImpl;
|
|
|
|
|
|
@Override
|
|
|
public boolean sendHTMLMail(Mail mail) {
|
|
|
try {
|
|
|
MimeMessage mailMessage = senderImpl.createMimeMessage();
|
|
|
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);
|
|
|
messageHelper.setTo(mail.getReceivers());
|
|
|
messageHelper.setFrom("YOHO-OPERATION@yoho.cn");
|
|
|
messageHelper.setSubject(mail.getSubject());
|
|
|
messageHelper.setCc(mail.getCc());
|
|
|
messageHelper.setText(mail.getMessage(), true);
|
|
|
senderImpl.send(mailMessage);
|
|
|
return true;
|
|
|
}catch (Exception e){
|
|
|
logger.error("send email failed!to:{}", e);
|
|
|
return false;
|
|
|
return blockingQueue.offer(mail);
|
|
|
}
|
|
|
|
|
|
//异步发送邮件
|
|
|
@Scheduled(fixedDelay = 10 * 1000)
|
|
|
public void send() {
|
|
|
int size = blockingQueue.size();
|
|
|
if (size == 0){
|
|
|
return;
|
|
|
}
|
|
|
List<Mail> list = new ArrayList<>(size);
|
|
|
blockingQueue.drainTo(list,size);
|
|
|
for (Mail mail : list){
|
|
|
try {
|
|
|
MimeMessage mailMessage = senderImpl.createMimeMessage();
|
|
|
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);
|
|
|
messageHelper.setTo(mail.getReceivers());
|
|
|
messageHelper.setFrom("YOHO-OPERATION@yoho.cn");
|
|
|
messageHelper.setSubject(mail.getSubject());
|
|
|
messageHelper.setCc(mail.getCc());
|
|
|
messageHelper.setText(mail.getMessage(), true);
|
|
|
senderImpl.send(mailMessage);
|
|
|
} catch (Exception e) {
|
|
|
logger.error("send email failed!to:{}", e);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|