- import com.jfinal.kit.StrKit;
- import com.jfinal.log.Log;
- import org.apache.commons.mail.*;
-
- import java.util.ArrayList;
- import java.util.List;
-
- public class EmailKit {
-
- private static final Log log = Log.getLog(EmailKit.class);
-
- /**
- * 发送普通纯文本邮件
- *
- * @param fromEmail 发件邮箱
- * @param toEmail 收件地址
- * @param title 邮件标题
- * @param content 邮件内容
- * @return
- */
- public static String sendEmail(String fromEmail, String toEmail, String title, String content) {
- return sendEmail(null, fromEmail, null, toEmail, title, content);
- }
-
- /**
- * 发送普通纯文本邮件
- *
- * @param emailServer 邮件发送服务器地址
- * @param fromEmail 发件邮箱
- * @param password 发件邮箱密码
- * @param toEmail 收件地址
- * @param title 邮件标题
- * @param content 邮件内容
- * @return
- */
- public static String sendEmail(String emailServer, String fromEmail, String password, String toEmail, String title, String content) {
-
- SimpleEmail email = new SimpleEmail();
- if (StrKit.notBlank(emailServer)) {
- email.setHostName(emailServer);
- } else {
- // 默认使用本地 postfix 发送,这样就可以将postfix 的 mynetworks 配置为 127.0.0.1 或 127.0.0.0/8 了
- email.setHostName("127.0.0.1");
- }
-
- // 如果密码为空,则不进行认证
- if (StrKit.notBlank(password)) {
- email.setAuthentication(fromEmail, password);
- }
-
- email.setCharset("utf-8");
- try {
- email.addTo(toEmail);
- email.setFrom(fromEmail);
- email.setSubject(title);
- email.setMsg(content);
- return email.send();
- } catch (EmailException e) {
- log.error(e.getMessage(), e);
- throw new RuntimeException(e);
- }
- }
-
- /**
- * 发送带附件的邮件
- *
- * @param fromEmail 发件邮箱
- * @param toEmail 收件地址
- * @param title 邮件标题
- * @param content 邮件内容
- * @param attachments 附件信息列表(List泛型对象为EmailAttachment)
- * @return
- */
- public static String sendEmail4ATM(String fromEmail, String toEmail, String title, String content, List attachments) {
- return sendEmail4ATM(null, fromEmail, null, toEmail, title, content, attachments);
- }
-
- /**
- * 发送带附件的邮件
- *
- * @param emailServer 邮件发送服务器地址
- * @param fromEmail 发件邮箱
- * @param password 发件邮箱密码
- * @param toEmail 收件地址
- * @param title 邮件标题
- * @param content 邮件内容
- * @param attachments 附件信息列表(List泛型对象为EmailAttachment)
- * @return
- */
- public static String sendEmail4ATM(String emailServer, String fromEmail, String password, String toEmail, String title, String content, List attachments) {
- MultiPartEmail email = new MultiPartEmail();
- if (StrKit.notBlank(emailServer)) {
- email.setHostName(emailServer);
- } else {
- // 默认使用本地 postfix 发送,这样就可以将postfix 的 mynetworks 配置为 127.0.0.1 或 127.0.0.0/8 了
- email.setHostName("127.0.0.1");
- }
-
- // 如果密码为空,则不进行认证
- if (StrKit.notBlank(password)) {
- email.setAuthentication(fromEmail, password);
- }
-
- email.setCharset("utf-8");
- try {
- email.addTo(toEmail);
- email.setFrom(fromEmail);
- email.setSubject(title);
- email.setMsg(content);
-
- // 添加附件
- if (null != attachments) {
- for (int i = 0; i < attachments.size(); i++) {
- EmailAttachment attachment = (EmailAttachment) attachments.get(i);
- if (null != attachment) {
- email.attach(attachment);
- }
- }
- }
- return email.send();
- } catch (EmailException e) {
- log.error(e.getMessage(), e);
- throw new RuntimeException(e);
- }
- }
-
- /**
- * 发送HTML格式的邮件
- *
- * @param fromEmail 发件邮箱
- * @param toEmail 收件地址
- * @param title 邮件标题
- * @param content 邮件内容
- * @param htmlMsg HTML格式
- * @return
- */
- public static String sendEmail4HTML(String fromEmail, String toEmail, String title, String content, String htmlMsg) {
- return sendEmail4HTML(null, fromEmail, null, toEmail, title, content, htmlMsg);
- }
-
- /**
- * 发送HTML格式的邮件
- *
- * @param emailServer 邮件发送服务器地址
- * @param fromEmail 发件邮箱
- * @param password 发件邮箱密码
- * @param toEmail 收件地址
- * @param title 邮件标题
- * @param content 邮件内容
- * @param htmlMsg HTML格式
- * @return
- */
- public static String sendEmail4HTML(String emailServer, String fromEmail, String password, String toEmail, String title, String content, String htmlMsg) {
- HtmlEmail email = new HtmlEmail();
- if (StrKit.notBlank(emailServer)) {
- email.setHostName(emailServer);
- } else {
- // 默认使用本地 postfix 发送,这样就可以将postfix 的 mynetworks 配置为 127.0.0.1 或 127.0.0.0/8 了
- email.setHostName("127.0.0.1");
- }
-
- // 如果密码为空,则不进行认证
- if (StrKit.notBlank(password)) {
- email.setAuthentication(fromEmail, password);
- }
-
- email.setCharset("utf-8");
- try {
- email.addTo(toEmail);
- email.setFrom(fromEmail);
- email.setSubject(title);
- email.setTextMsg(content);
-
- // 添加HTML
- email.setHtmlMsg(htmlMsg);
- return email.send();
- } catch (EmailException e) {
- log.error(e.getMessage(), e);
- throw new RuntimeException(e);
- }
- }
-
- public static void main(String[] args) {
- List attachments = new ArrayList();
- EmailAttachment attachment = new EmailAttachment();
- attachment.setPath("D:\\sss.docx");
- attachment.setDisposition(EmailAttachment.ATTACHMENT);
- attachments.add(attachment);
-
- EmailAttachment attachment1 = new EmailAttachment();
- attachment1.setPath("D:\\sss11.docx");
- attachment1.setDisposition(EmailAttachment.ATTACHMENT);
- attachments.add(attachment1);
-
- String ret = sendEmail4ATM(
- "smtp.163.com", // 邮件发送服务器地址
- "xxxxxx@163.com", // 发件邮箱
- "xxxxxx", // 发件邮箱密码
- "xxxxxx@qq.com", // 收件地址
- "邮件标题", // 邮件标题
- "content", // 邮件内容
- attachments);
- System.out.println("发送返回值: " + ret);
- }
- }