MailUtil.java 1.99 KB
Newer Older
wang-jinfeng committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
package mobvista.dmp.util;

import org.apache.log4j.Logger;

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.util.Date;
import java.util.Properties;

/**
 * 发送邮件
 * @author fengliang
 */
public class MailUtil {
	private static final String HOST = "smtp.exmail.qq.com";
	private static final String FROM = "monitor.dataPlatform@mobvista.com";
	private static final String USERNAME = "monitor.dataPlatform@mobvista.com";
	private static final String PASSWORD = "dataPlatform1";
	private static final Logger log = Logger.getLogger(MailUtil.class);
	
	public static void sendEmail(String to, String subject, String body)
			throws MessagingException, java.io.UnsupportedEncodingException {
		Transport transport = null;
		try {
			Properties props = new Properties();
			props.setProperty("mail.smtp.auth", "true");// 指定是否需要SMTP验证
			props.setProperty("mail.smtp.host", HOST);// 指定SMTP服务器
			props.put("mail.transport.protocol", "smtp");
			Session mailSession = Session.getDefaultInstance(props);
			mailSession.setDebug(false);// 是否在控制台显示debug信息

			log.info("Will send mail to " + to);
			InternetAddress fromAddress = new InternetAddress(FROM);
			InternetAddress toAddress = new InternetAddress(to);

			MimeMessage testMessage = new MimeMessage(mailSession);
			testMessage.setFrom(fromAddress);
			testMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddress);
			testMessage.setSentDate(new Date());
			testMessage.setSubject(MimeUtility.encodeText(subject, "utf-8", "B"));

			testMessage.setContent(body, "text/html;charset=utf-8");

			transport = mailSession.getTransport("smtp");
			transport.connect(HOST, USERNAME, PASSWORD);
			transport.sendMessage(testMessage, testMessage.getAllRecipients());
		} finally {
			if (transport != null) {
				transport.close();
			}
		}
	}
}