/**
* @param message
* @param emailProp
* @return String
* @title sendEmail
* @description 邮件发送
* @date 2021-11-18 11:22
*/
public static Result sendEmailAndReceiveMessageId(Message message, EmailProp emailProp) {
Result result = new Result();
String resultMsg = "";
String host = emailProp.getHost();
String user = emailProp.getUser();
String password = emailProp.getPassword();
try {
// 获取session
Session session = getSession(host);
// 通过session得到transport对象
SMTPTransport ts = (SMTPTransport) session.getTransport("smtp");
// 连上邮件服务器
ts.connect(host, user, password);
ts.addTransportListener(new TransportListener() {
@SneakyThrows
@Override
public void messageDelivered(TransportEvent transportEvent) {
String lastServerResponse = ts.getLastServerResponse();
if (StringUtil.isEmpty(lastServerResponse) || lastServerResponse.indexOf("<") < 0) {
log.error("邮件发送异常,无法获取messageId,lastServerResponse={}", lastServerResponse);
ts.close();
return;
}
String msgId = lastServerResponse.substring(lastServerResponse.indexOf("<") + 1, lastServerResponse.indexOf(">"));
result.setData(msgId);
ts.close();
}
@SneakyThrows
@Override
public void messageNotDelivered(TransportEvent transportEvent) {
ts.close();
}
@SneakyThrows
@Override
public void messagePartiallyDelivered(TransportEvent transportEvent) {
ts.close();
}
});
// 发送邮件
ts.sendMessage(message, message.getAllRecipients());
// ts.close();
} catch (Exception e) {
resultMsg = "邮件发送异常";
result.setCode(ResultCode.FAILURE.getCode());
log.error("邮件发送异常:{}", e.getMessage(), e);
}
result.setMsg(resultMsg);
return result;
}
javamail发送时保存messageId
最新推荐文章于 2023-01-13 14:06:22 发布