JavaMail с gmail SMTP - как работать с несуществующими адресами электронной почты - PullRequest
0 голосов
/ 25 октября 2019

В своем проекте я использую реализацию 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;
}
...