Apache Commons Email简单邮件发送工具类

import java.util.Arrays;
import java.util.Collection;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 发邮件工具类
 * @author laizhiming
 *
 */
@SuppressWarnings("unchecked")
public class EmailSender {
	
	private static final Logger log = LoggerFactory.getLogger(EmailSender.class);
	
	//application.properties
	private final static String EMAIL_HOSTNAME = PropertiesUtil.getValueByKey("email_hostname");//邮箱服务器,如:smtp.qq.com
	private final static String EMAIL_USERNAME = PropertiesUtil.getValueByKey("email_username");//邮箱账户,如:[email protected]
	private final static String EMAIL_PASSWORD = PropertiesUtil.getValueByKey("email_password");//邮箱密码
	private final static String EMAIL_NAME = PropertiesUtil.getValueByKey("email_name");//发件人名称(昵称)
	private final static boolean EMAIL_IS_SSL = "true".equalsIgnoreCase(PropertiesUtil.getValueByKey("email_is_ssl"));//是否支持SSL链接
	
	/**
	 * 发送纯文本邮件
	 * @param subject 主题
	 * @param msg 内容
	 * @param to 主送
	 */
	public static void sendSimpleEmail(String subject, String msg, Object to){
		sendSimpleEmail(subject, msg, to, null, null);
	}
	
	/**
	 * 发送纯文本邮件
	 * @param subject 主题
	 * @param msg 内容
	 * @param to 主送
	 * @param cc 抄送
	 */
	public static void sendSimpleEmail(String subject, String msg, Object to, Object cc){
		sendSimpleEmail(subject, msg, to, cc, null);
	}
	
	/**
	 * 发送纯文本邮件
	 * @param subject 主题
	 * @param msg 内容
	 * @param to 主送
	 * @param cc 抄送
	 * @param bcc 密送
	 */
	public static void sendSimpleEmail(String subject, String msg, Object to, Object cc, Object bcc){
		SimpleEmail email = new SimpleEmail();
		email.setHostName(EMAIL_HOSTNAME);
		email.setAuthentication(EMAIL_USERNAME, EMAIL_PASSWORD);
		email.setSSLOnConnect(EMAIL_IS_SSL);
		email.setCharset("UTF-8");
		
		email.setSubject(subject);
		try {
			email.setFrom(EMAIL_USERNAME, EMAIL_NAME);
			
			if(to instanceof String){
				email.addTo((String) to);
			}else if(to instanceof String[]){
				email.addTo((String[]) to);
			}else if(to instanceof Collection){
				email.addTo(((Collection<String>) to).toArray(new String[0]));
			}
			
			if (cc != null) {
				if(cc instanceof String){
					email.addCc((String) cc);
				}else if(cc instanceof String[]){
					email.addCc((String[]) cc);
				}else if(cc instanceof Collection){
					email.addCc(((Collection<String>) cc).toArray(new String[0]));
				}
			}
			
			if (bcc != null) {
				if(bcc instanceof String){
					email.addBcc((String) bcc);
				}else if(bcc instanceof String[]){
					email.addBcc((String[]) bcc);
				}else if(bcc instanceof Collection){
					email.addBcc(((Collection<String>) bcc).toArray(new String[0]));
				}
			}
			
			email.setMsg(msg);
			
			email.send();
			
			if(log.isInfoEnabled()){
				log.info("email sent success!");
			}
		} catch (EmailException e) {
			log.error(e.getMessage(), e);
		}
	}
	
}


核心功能相关jar包:activation-1.1.jar、commons-email-1.4.jar、mail-1.4.7.jar

日志(log)、PropertiesUtil类(读取邮件服务器、用户名密码等配置)请自行删减替换。


你可能感兴趣的:(java,apache,邮件,email,mail,commons)