我使用的是Spring Boot 1.5,因此我尝试在用户创建警报时发送异步邮件,但此方法不起作用,并且此错误显示https://youtrack.jetbrains.com/issue/VIM-1363,谢谢您的帮助 这是我的服务
@Async
@Override
public void addedSuccess(EmployeeVO employee, TemplateType type, Map<String, String> customParams) {
String message = "alert created" ;
LocalDateTime now = LocalDateTime.now();
long countTemporaryNotification = temporaryAlertNotificationRepository
.countTemporaryAlertNotificationByEndAfterAndStartBefore(now, now);
if (countTemporaryNotification > 0){
List<TemporaryAlertNotification> temporaryAlertNotifications = temporaryAlertNotificationRepository
.findByEndAfterAndStartBefore(now,now);
if (temporaryAlertNotifications.size() > 0){
message = temporaryAlertNotifications.get(0).getMessage();
}
}
if (employee != null){
MessageTemplate messageTemplate =Optional.ofNullable(messageTemplateRepository.findByType(type))
.orElse(new MessageTemplate.Builder()
.setSujet(type.getLabel())
.setType(type)
.setMessage(message)
.build());
fillAndSend(customParams, employee, Lists.newArrayList(), messageTemplate, template );
}
}
并且我覆盖了alertService中的服务以使用它
mailService.addedSuccess(employevo, TemplateType.NEW_ALERT, customParams);
和配置
@Configuration
public class MailConfig {
@Value("${alert.mail.host}")
private String host;
@Value("${alert.mail.port}")
private Integer port;
@Value("${alert.mail.username}")
private String username;
@Value("${alert.mail.password}")
private String password;
@Value("${alert.mail.properties.mail.smtp.auth}")
private String auth;
@Value("${alert.mail.properties.mail.smtp.starttls.enable}")
private String enable;
@Bean
public JavaMailSender alertMailSender() {
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setHost(host);
sender.setPort(port);
sender.setPassword(password);
sender.setUsername(username);
Properties javaMailProperties = new Properties();
javaMailProperties.put("mail.smtp.starttls.enable", enable);
javaMailProperties.put("mail.smtp.auth", auth);
sender.setJavaMailProperties(javaMailProperties);
return sender;
}
}