EmailUtil

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;
}


}
/* * JCatalog Project */ package com.hexiang.utils; import java.util.List; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.Properties; import javax.mail.Session; import javax.mail.Transport; import javax.mail.Message; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.hexiang.exception.CatalogException; /** * Utility class to send email. * * @author <a href="380595305@qq.com">hexiang</a> */ public class EmailUtil { //the logger for this class private static Log logger = LogFactory.getLog("com.hexiang.util.EmailUtil"); /** * Send email to a single recipient. * * @param smtpHost the SMTP email server address * @param senderAddress the sender email address * @param senderName the sender name * @param receiverAddress the recipient email address * @param sub the subject of the email * @param msg the message content of the email */ public static void sendEmail(String smtpHost, String senderAddress, String senderName, String receiverAddress, String sub, String msg) throws CatalogException { List<String> recipients = new ArrayList<String>(); recipients.add(receiverAddress); sendEmail(smtpHost, senderAddress, senderName, recipients, sub, msg); } /** * Send email to a list of recipients. * * @param smtpHost the SMTP email server address * @param senderAddress the sender email address * @param senderName the sender name * @param recipients a list of receipients email addresses * @param sub the subject of the email * @param msg the message content of the email */ public static void sendEmail(String smtpHost, String senderAddress, String senderName, List<String> recipients, String sub, String msg) throws CatalogException { if (smtpHost == null) { String errMsg = "Could not send email: smtp host address is null"; logger.error(errMsg); throw new CatalogException(errMsg); } try { Properties props = System.getProperties(); props.put("mail.smtp.host", smtpHost); Session session = Session.getDefaultInstance(props, null ); MimeMessage message = new MimeMessage( session ); message.addHeader("Content-type", "text/plain"); message.setSubject(sub); message.setFrom(new InternetAddress(senderAddress, senderName)); for (Iterator<String> it = recipients.iterator(); it.hasNext();) { String email = (String)it.next(); message.addRecipients(Message.RecipientType.TO, email); } message.setText(msg); message.setSentDate( new Date() ); Transport.send(message); } catch (Exception e) { String errorMsg = "Could not send email"; logger.error(errorMsg, e); throw new CatalogException("errorMsg", e); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值