У меня есть приложение, пользователь запрашивает отчет и получает его в свой почтовый ящик в виде 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);
}