Проблема с javax.mail и прикрепленным файлом - PullRequest
0 голосов
/ 10 декабря 2018

Я хочу отправить электронное письмо с javax.mail.

Он работает на Ubuntu 14.04 и java 1.8.0_121 и tomcat7

С ubuntu 18.04 и java 1.8.0_181 и tomcat8 Я являюсьполучая эту ошибку:

Причина: java.io.IOException: "text / html" DataContentHandler требует объект String, был задан объект типа класса javax.mail.internet.MimeMultipart

Вот код:

MimeMessage mex = new MimeMessage(session);
mex.setFrom(new InternetAddress(from));
mex.addRecipient(RecipientType.TO, new InternetAddress((String)((List)ccList).get(0)));
mex.setRecipients(RecipientType.BCC, from);
mex.setSubject(subject);

MimeMultipart var26 = new MimeMultipart();
MimeBodyPart attachBodyPart = new MimeBodyPart();
attachBodyPart.setText(messageBody);
var26.addBodyPart(attachBodyPart);
attachBodyPart = new MimeBodyPart();
byte[] data = baos.toByteArray();
new FileDataSource(fileName);
attachBodyPart.setDisposition("attachment");
attachBodyPart.setContent(data, "application/pdf");
attachBodyPart.setFileName(fileName);
var26.addBodyPart(attachBodyPart);
mex.setContent(var26, "text/html");
Transport transport = session.getTransport("smtp");
transport.connect(param.getSmtpHost(), from, pass);
transport.sendMessage(mex, mex.getAllRecipients());
transport.close();

У вас есть идеи?

1 Ответ

0 голосов
/ 10 декабря 2018

Трудно поверить, что этот код работает в любом месте.

Изменить

attachBodyPart.setText(messageBody);

на

attachBodyPart.setText(messageBody, "html");

Изменить

mex.setContent(var26, "text/html");

на

mex.setContent(var26);
...