JAVA mail IllegalAddress Адрес не найден - PullRequest
0 голосов
/ 29 апреля 2020

Я использую JAVA mail для запуска почты по протоколу SMTP. Функция MimeMessageHelper setTo () принимает массив строк, в котором я могу передать несколько идентификаторов электронной почты. Проблема, с которой я сталкиваюсь, это исключение IllegalAddress, когда один из идентификаторов электронной почты оказывается недействительным, поскольку человек покинул организацию, и, следовательно, электронное письмо не отправляется на другие действительные электронные письма, как мне это сделать. Если я в состоянии справиться с этим, почта может быть отправлена ​​на другие действительные письма в массиве String. Любые указатели.

private MimeMessage constructMimeMessage(Mail mail, String type)
            throws MessagingException, UnsupportedEncodingException {
        MimeMessage message = emailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED,
                StandardCharsets.UTF_8.name());
        String html = "";
        Context context = new Context();
        context.setVariables(mail.getModel());
        if (type.equals(ALERT_MAIL)) {
            html = templateEngine.process("take1_email_template_alerts", context);
            helper.setTo(toEmailAddress);
        } else if (type.equals(GENERAL_MAIL)) {
            html = templateEngine.process("take1_email_template_general", context);
            helper.setTo(mail.getTo());
        }
        helper.setText(html, true);
        helper.setSubject(mail.getSubject());
        helper.setFrom(new InternetAddress(fromEmailAddress, fromPersonalName));
        if (null != mail.getCc()) {
            helper.setCc(mail.getCc());
        }
        if (null != mail.getBcc()) {
            helper.setBcc(mail.getBcc());
        }
        if (null != mail.getReplyTo()) {
            helper.setReplyTo(mail.getReplyTo());
        }
        Optional.ofNullable(mail.getAttachments()).map(Collection::parallelStream).orElseGet(Stream::empty)
                .forEach(f -> addAttachment(helper, f));
        return message;
    }
...