package com.product.admin.util.email; import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.JsonNode; import com.mashape.unirest.http.Unirest; import com.mashape.unirest.http.exceptions.UnirestException; import com.product.admin.config.SystemCode; import com.product.core.config.Global; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; /** * mailgun邮件发送工具类 * Copyright LX-BASE * @Title: LX-BASE- * @Project: MailgunSendEmail * @Date: 2020-09-29 16:36 * @Author: 杜洪波 * @Description: */ public class MailgunSendEmail { // private static Logger logger = LoggerFactory.getLogger(MailgunSendEmail.class); //正式账号 // private static final String DOMAIN = "mail.purtato.com"; // private static final String API_URI = "https://api.mailgun.net/v3/"+DOMAIN+"/messages"; // private static final String API_USER = "brianho@mail.purtato.com"; // private static final String DOMAIN = "mail.essencehr.io"; // private static final String API_USER = "accountservices@mail.essencehr.io"; // private static final String API_KEY = "8d52b0a748b20c61331587fa9a3fe6fc-cb3791c4-8cf158ef"; // private static final String DOMAIN = "test-mail.essencehr.io"; // private static final String API_USER = "accountservices@test-mail.essencehr.io"; // private static final String API_KEY = "8d52b0a748b20c61331587fa9a3fe6fc-cb3791c4-8cf158ef"; /* public static void sendMail() { HttpResponse request=null; int finalCode=200; try { request = Unirest.post("https://api.mailgun.net/v3/"+DOMAIN+"/messages") .basicAuth("api", API_KEY) .field("from", API_USER) .field("to", "1074825718@qq.com") .field("subject", "gf") .field("text", "sdfafs") .asJson(); finalCode=request.getStatus(); } catch (UnirestException e) { e.printStackTrace(); finalCode=500; } } public static void main(String[] args) { sendMail(); } */ /** * 发送html和text邮件 * @param fseMailInfo 邮件主体信息 * @param attachment 附件 * @throws BaseException */ public static void sendMail(FieldSetEntity fseMailInfo) throws BaseException { String mailType="text"; String mailContent=fseMailInfo.getString("mail_content"); if (mailContent.indexOf("")>-1) { mailType="html"; } int finalCode=200; HttpResponse request=null; try { request = Unirest.post("https://api.mailgun.net/v3/"+Global.getSystemConfig("mailgun.mail.domain", "")+"/messages") .basicAuth("api", Global.getSystemConfig("mailgun.mail.key", "")) .field("from", Global.getSystemConfig("mailgun.mail.user", "")) .field("to", fseMailInfo.getString("addressee")) .field("subject", fseMailInfo.getString("mail_title")) .field(mailType, mailContent) .asJson(); finalCode=request.getStatus(); } catch (UnirestException e) { e.printStackTrace(); finalCode=500; } finally { resultJudge(finalCode,fseMailInfo); } } /** * 发送状态判断 * @param finalCode 发送结果 * @param fseMailInfo 邮件信息 * @throws BaseException */ public static void resultJudge(int finalCode,FieldSetEntity fseMailInfo) throws BaseException { fseMailInfo.setValue("smtp_username", Global.getSystemConfig("mailgun.mail.user", "")); fseMailInfo.setValue("smtp_license_code", Global.getSystemConfig("mailgun.mail.key", "")); int status=2; String resultInfo=null; switch (finalCode) { case 200: status=1; resultInfo=SystemCode.SYSTEM_MAILGUN_RESULT_ONE.getText(); break; case 400: resultInfo=SystemCode.SYSTEM_MAILGUN_RESULT_TWO.getText(); break; case 401: resultInfo=SystemCode.SYSTEM_MAILGUN_RESULT_THREE.getText(); break; case 402: resultInfo=SystemCode.SYSTEM_MAILGUN_RESULT_FOUR.getText(); break; case 404: resultInfo=SystemCode.SYSTEM_MAILGUN_RESULT_FIVE.getText(); break; case 413: resultInfo=SystemCode.SYSTEM_MAILGUN_RESULT_SIX.getText(); break; default: resultInfo=SystemCode.SYSTEM_MAILGUN_RESULT_SEVEN.getText(); break; } fseMailInfo.setValue("send_stat", status); fseMailInfo.setValue("failure_reason", resultInfo); } }