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<JsonNode> 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("</html>")>-1) {
|
mailType="html";
|
}
|
|
int finalCode=200;
|
|
HttpResponse<JsonNode> 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);
|
}
|
}
|