Java 多线程 BlockingQueue 实现 高并发邮件 代码 SystemEmailUtils

package com.pingan.emall.biz.util;


import com.paic.pafa.app.lwc.core.util.DevLog;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.apache.commons.lang.StringUtils;


public class SystemEmailUtils {

private static Session session = null;
private static Object lock = new Object();

public static boolean sendMail(MailBean mail) {
if (mail == null) {
return false;
}

try {
MimeMessage mimeMessage = getMimeMessage(mail);
Transport.send(mimeMessage);
return true;
} catch (MessagingException e) {
DevLog.error("Exception happens when send mail ", e);
return false;
}
}

private static MimeMessage getMimeMessage(MailBean mail) throws MessagingException {
MimeMessage mimeMessage = new MimeMessage(getDefaultSession());

if (StringUtils.isNotEmpty(mail.getMailFrom())) {
mimeMessage.setFrom(new InternetAddress(mail.getMailFrom()));
}

if (StringUtils.isNotEmpty(mail.getMailTo())) {
for (String mailTo : StringUtils.split(mail.getMailTo(), ';')) {
mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));
}
}

if (StringUtils.isNotEmpty(mail.getMailCC())) {
for (String cc : StringUtils.split(mail.getMailCC(), ';')) {
mimeMessage.addRecipient(Message.RecipientType.CC, new InternetAddress(cc));
}
}

if (StringUtils.isNotEmpty(mail.getSubject())) {
mimeMessage.setSubject(mail.getSubject(), "GBK");
}

if (StringUtils.isNotEmpty(mail.getContent())) {
mimeMessage.setContent(mail.getContent(), "text/html;charset=GBK");
}

return mimeMessage;
}

private static Session getDefaultSession() throws MessagingException {
if (session == null) {
synchronized (lock) {
if (session == null) {
Properties properties = new Properties();
ResourceBundle bundle = PropertyResourceBundle.getBundle("context-emall");
String mailServer = bundle.getString("MailServerName");
if (StringUtils.isEmpty(mailServer)) {
throw new MessagingException("Mail Server not configured");
}
properties.setProperty("mail.smtp.host", mailServer);
/*String senderName = bundle.getString("MailSenderName");
if (StringUtils.isNotEmpty(senderName)) {

}
String sendPassword = bundle.getString("MailSenderPassword");*/
properties.setProperty("mail.smtp.auth", "false");

session = Session.getDefaultInstance(properties);
}
}
}
return session;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值