首页>代码>Spring的邮件发送工具,支持群发和抄送>/src/main/java/cn/ifxcode/utils/email/service/impl/EmailServiceImpl.java
package cn.ifxcode.utils.email.service.impl;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import cn.ifxcode.utils.email.service.EmailService;

@Service
public class EmailServiceImpl implements EmailService {

	private Logger logger = LoggerFactory.getLogger(this.getClass());
	
	@Resource
	private JavaMailSender javaMailSender;
	
	@Value("${email.username}")
	private String email;
	
	public void sendMailAndFile(String subject, String[] address, String[] ccAddress, String msg, File[] fileList) {
		
		logger.info("sendMailAndFile start...");
		MimeMessage mailMessage = javaMailSender.createMimeMessage();
		MimeMessageHelper messageHelper = null;
		try {
			messageHelper = new MimeMessageHelper(mailMessage, true, "UTF-8");
			if (address != null) {
				messageHelper.setTo(this.formatString(address));
			}
			if (ccAddress != null) {
				messageHelper.setCc(this.formatString(ccAddress));
			}
			messageHelper.setFrom(email);
			messageHelper.setSubject(subject);
			messageHelper.setText(new StringBuilder("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"></head></body>")
					.append(msg).append("</body></html>").toString(), true);
				if(null!=fileList&&fileList.length>0){
					for (File attachFile : fileList) {
						messageHelper.addAttachment(attachFile.getName(), attachFile);
					}
				} 
			javaMailSender.send(mailMessage);
			logger.info("sendMailAndFile end...");
		} catch (MessagingException e) {
			logger.info("sendMailAndFile happend...", e.getMessage());
		}
		
	}

	public void sendMail(String subject, String[] address, String[] ccAddress, String msg) {

		logger.info("sendMail start...");
		MimeMessage mailMessage = javaMailSender.createMimeMessage();
		MimeMessageHelper messageHelper = null;
		try {
			messageHelper = new MimeMessageHelper(mailMessage, true, "UTF-8");
			if (address != null) {
				messageHelper.setTo(this.formatString(address));
			}
			if (ccAddress != null) {
				messageHelper.setCc(this.formatString(ccAddress));
			}
			messageHelper.setFrom(email);
			messageHelper.setSubject(subject);
			messageHelper.setText(new StringBuilder("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"></head></body>")
					.append(msg).append("</body></html>").toString(), true);
			javaMailSender.send(mailMessage);
			logger.info("sendMail end...");
		} catch (MessagingException e) {
			logger.info("sendMail happend...", e.getMessage());
		}
		
	}
	
	private InternetAddress[] formatString(String... address) {
		InternetAddress[] internetAddresses = new InternetAddress[address.length];
		List<InternetAddress> list = new ArrayList<InternetAddress>(address.length);
		for (String str : address) {
			try {
				list.add(new InternetAddress(str));
			} catch (AddressException e) {
				e.printStackTrace();
			}
		}
		return list.toArray(internetAddresses);
	}

}
最近下载更多
langya  LV9 2022年3月2日
luesjim  LV11 2021年6月18日
wangyang123  LV9 2021年6月8日
xuexizhuanyong23  LV16 2021年1月22日
stellafull  LV2 2021年1月17日
robin8899  LV3 2020年11月27日
jin666  LV3 2020年3月10日
周大福  LV12 2020年2月27日
haohao先森  LV5 2020年2月10日
8战魂5无双8  LV43 2020年1月6日
最近浏览更多
lzx602  LV3 4月15日
小白jmhuang  LV12 2023年5月30日
1358849392  LV21 2022年12月27日
qq1176648922  LV6 2022年10月24日
2363659936  LV2 2022年6月21日
1623096142  LV6 2022年6月20日
WeiZZZ  LV1 2022年3月28日
npc也有忧伤  LV3 2022年3月20日
langya  LV9 2022年3月2日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友