|
|
@@ -69,7 +69,7 @@ public class MailServiceImpl implements MailService {
|
|
|
* 获取邮箱客户端
|
|
|
*/
|
|
|
@PostConstruct
|
|
|
- public void init() {
|
|
|
+ public void init() throws Exception {
|
|
|
List<EmailConfig> emailConfigs = emailConfigMapper.selectList(null);
|
|
|
senders = new ArrayList<>(emailConfigs.size());
|
|
|
emailConfigs.forEach(emailConfig->{
|
|
|
@@ -92,6 +92,7 @@ public class MailServiceImpl implements MailService {
|
|
|
javaMailSender.setJavaMailProperties(properties);
|
|
|
senders.add(javaMailSender);
|
|
|
});
|
|
|
+ log.info("初始化邮箱大小:{}", senders.size());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -167,7 +168,7 @@ public class MailServiceImpl implements MailService {
|
|
|
try {
|
|
|
JavaMailSenderImpl sender = getJavaEmailServer();
|
|
|
helper.setFrom(sender.getUsername());
|
|
|
- log.info("开始给用户userId:{},relationId:{} 发送课程:{}专属课件", userId, relationId, goodsTitle);
|
|
|
+ log.info("使用邮箱:{},开始给用户userId:{},relationId:{} 发送课程:{}专属课件", sender.getUsername(), userId, relationId, goodsTitle);
|
|
|
sendMsgIfFailRetry(sender, msg);
|
|
|
} catch (Exception e) {
|
|
|
log.info("发送课件失败,error:{}", StringUtil.getErrorText(e));
|
|
|
@@ -188,7 +189,9 @@ public class MailServiceImpl implements MailService {
|
|
|
private void sendMsgIfFailRetry(JavaMailSenderImpl sender, MimeMessage msg) {
|
|
|
try {
|
|
|
sender.send(msg);
|
|
|
+ log.info("发送课件成功");
|
|
|
} catch (Exception e) {
|
|
|
+ log.error("发送课件失败失败,error:{}", StringUtil.getErrorText(e));
|
|
|
if (!retry(msg)) {
|
|
|
throw BusinessRuntimeException.getInstance("暂无可用邮件服务器");
|
|
|
}
|
|
|
@@ -200,14 +203,16 @@ public class MailServiceImpl implements MailService {
|
|
|
try {
|
|
|
msg.setFrom(retry.getUsername());
|
|
|
retry.send(msg);
|
|
|
+ log.info("重试发送课件成功");
|
|
|
return true;
|
|
|
} catch (Exception e2) {
|
|
|
+ log.error("重试发送课件失败失败,error:{}", StringUtil.getErrorText(e2));
|
|
|
}
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- public JavaMailSenderImpl getJavaEmailServer() {
|
|
|
+ public JavaMailSenderImpl getJavaEmailServer() throws Exception {
|
|
|
if (senders.isEmpty()) {
|
|
|
String key = "reEmailSenders";
|
|
|
if (redisService.setNx(key, "reEmailSenders", 30l)) {
|