В своем проекте я использую реализацию JavaMail для отправки электронной почты через SMTP-сервер GMAIL. Общая концепция в порядке, мои пользовательские валидаторы проверяют, правильно ли была составлена электронная почта и т. Д.
Все хорошо, однако я не могу поймать что-то, что следует рассматривать, как неотправленное письмо. Я углубился в документы JavaMail, и они посоветовали перехватить SendMailException и MessageException, но, основываясь на коде, он обрабатывает только неправильно сформулированные адреса электронной почты или пустые строки. Если пользователь придет с несуществующим электронным письмом, но хорошо сформулированным, API не сообщит, что что-то произошло.
Кто-нибудь справился с подобной проблемой и знает, как двигаться дальше? Заранее спасибо за вашу помощь.
@Bean
public JavaMailSender javaMailSender(EmailProperties prop) {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(prop.getHost());
mailSender.setPort(prop.getPort());
mailSender.setUsername(prop.getUsername());
mailSender.setPassword(prop.getPassword());
mailSender.setDefaultFileTypeMap(FileTypeMap.getDefaultFileTypeMap());
mailSender.setJavaMailProperties(getProperties(prop));
mailSender.setProtocol(prop.getProtocol());
mailSender.setDefaultEncoding("UTF-8");
return mailSender;
}
private Properties getProperties(EmailProperties prop) {
Properties props = new Properties();
props.put("mail.transport.protocol", prop.getProtocol());
props.put("mail.smtp.auth", prop.getAuth());
props.put("mail.smtp.starttls.enable", prop.getStarttls());
props.put("mail.debug", prop.getDebug());
return props;
}