EmailUtil

来源:互联网 发布:windows安装光盘多少钱 编辑:程序博客网 时间:2024/06/08 05:28
package mail;


import java.util.List;


import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.SimpleEmail;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;


import com.google.common.base.Strings;
import com.google.common.collect.Lists;


/**
 * @author Andypan
 * @date 2017年8月21日下午4:19:38
 */
public class EmailUtil
{
private static Logger logger = Logger.getLogger(EmailUtil.class);
static
{
BasicConfigurator.configure();
}


public static void main(String[] args) {

sendHtmlEmail(Lists.newArrayList("zoumingxuan*******.com"), Lists.newArrayList("177****0@163.com"),
"andy****20@sina.com", "*****", "smtp.sina.com", "抄送测试",
"<h1 style='color:red'>明天下午3:00会议室讨论</h1>" + " 请准时参加!");
}


/**

* @param receiverList
*            接件人列表
* @param ccList
*            抄送人列表
* @param senderMailBox
*            发送者邮箱
* @param senderPasswd
*            发送者邮箱密码
* @param stmpServer
*            smtp服务器
* @param subject
*            主题
* @param content
*            内容
* @return
*/
public static boolean sendSimpleEmail(List<String> receiverList, List<String> ccList, String senderMailBox,
String senderPasswd, String stmpServer, String subject, String content) {
boolean sentSuccess = false;
SimpleEmail email = new SimpleEmail();
email.setHostName(stmpServer);// 设置使用发电子邮件的邮件服务器,这里以qq邮箱为例(其它例如:【smtp.163.com】,【smtp.sohu.com】)
try
{
// 收件人邮箱列表
receiverList.stream().filter(e -> !Strings.isNullOrEmpty(e)).forEach(e -> {
try
{
email.addTo(e);
} catch (EmailException e1)
{
logger.error("add email " + e + "to receiverList error", e1);
}
});


// 抄送人邮箱列表
ccList.stream().filter(e -> !Strings.isNullOrEmpty(e)).forEach(e -> {
try
{
email.addCc(e);
} catch (EmailException e1)
{
logger.error("add email " + e + "to ccList error", e1);
}
});
// email.setDebug(true);
// 邮箱服务器身份验证
email.setAuthentication(senderMailBox, senderPasswd);
// 发件人邮箱
email.setFrom(senderMailBox);
// 邮件主题
email.setSubject(subject);
// 邮件内容
email.setMsg(content);
// 发送邮件
email.send();
sentSuccess = true;
logger.info("send successfully");
} catch (EmailException ex)
{
logger.error("send email error", ex);
}
return sentSuccess;
}


/**

* @param receiverList
*            接件人列表
* @param ccList
*            抄送人列表
* @param senderMailBox
*            发送者邮箱
* @param senderPasswd
*            发送者邮箱密码
* @param stmpServer
*            smtp服务器
* @param subject
*            主题
* @param content
*            内容
* @return
*/
public static boolean sendHtmlEmail(List<String> receiverList, List<String> ccList, String senderMailBox,
String senderPasswd, String stmpServer, String subject, String content) {
boolean sentSuccess = false;
HtmlEmail email = new HtmlEmail();
email.setHostName(stmpServer);// 设置使用发电子邮件的邮件服务器,这里以qq邮箱为例(其它例如:【smtp.163.com】,【smtp.sohu.com】)
email.setCharset("utf-8");
try
{
// 收件人邮箱列表
receiverList.stream().filter(e -> !Strings.isNullOrEmpty(e)).forEach(e -> {
try
{
email.addTo(e);
} catch (EmailException e1)
{
logger.error("add email " + e + "to receiverList error", e1);
}
});


// 抄送人邮箱列表
ccList.stream().filter(e -> !Strings.isNullOrEmpty(e)).forEach(e -> {
try
{
email.addCc(e);
} catch (EmailException e1)
{
logger.error("add email " + e + "to ccList error", e1);
}
});
// email.setDebug(true);
// 邮箱服务器身份验证
email.setAuthentication(senderMailBox, senderPasswd);
// 发件人邮箱
email.setFrom(senderMailBox);
// 邮件主题
email.setSubject(subject);
// 邮件内容
email.setMsg(content);
// 发送邮件
email.send();
sentSuccess = true;
logger.info("send successfully");
} catch (EmailException ex)
{
logger.error("send email error", ex);
}
return sentSuccess;
}


}