моя Java-программа застряла на линии Transport.send (сообщение) - PullRequest
0 голосов
/ 11 мая 2018

У меня есть приложение, пользователь запрашивает отчет и получает его в свой почтовый ящик в виде zip-файла csv.Он отлично работает для отправки писем с zip-файлами с максимальным размером ~ 44 КБ.Но программа навсегда застряла на Transport.send (сообщение);при отправке отчетов большего размера.

Я ищу похожие проблемы и применил решение по тайм-ауту, но оно мне не помогает.

    try {
        Properties props = mailProperties.asProperties();
        props.put("mail.smtp.connectiontimeout", TIMEOUT);
        props.put("mail.smtp.timeout", TIMEOUT);
        Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(mailProperties.getUsername(), mailProperties.getPassword());
            }
        });
        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(mail.getFrom()));
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mail.getTo()));
        message.setSubject(mail.getSubject());
        MimeBodyPart mbp1 = new MimeBodyPart();
        mbp1.setText(mail.getText());
        MimeBodyPart mbp2 = new MimeBodyPart();
        mbp2.attachFile(filePath);
        Multipart mp = new MimeMultipart();
        mp.addBodyPart(mbp1);
        mp.addBodyPart(mbp2);
        message.setContent(mp);
        Transport.send(message);  // get stuck here
    } catch (Exception e) {
        LOGGER.error("Error : ", e);
        throw new RuntimeException("Sending email failed.", e);
    }

1 Ответ

0 голосов
/ 11 мая 2018

Можно ли поставить этот метод в многопоточную задачу? Если задача с резьбой занимает больше времени, чем ожидалось, время ожидания потока?

Как отключить поток

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...