Как прикрепить файл к письму с помощью JavaMail - PullRequest
4 голосов
/ 16 ноября 2009

Мне нужно отправить файл PDF с помощью JavaMail. PDF в настоящее время является байтом []. Как я могу получить его в источник данных?

byte[] pdffile = ....

messageBodyPart = new MimeBodyPart();

DataSource source = ???

messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);

multipart.addBodyPart(messageBodyPart);

Ответы [ 2 ]

7 голосов
/ 16 ноября 2009

Использование javax.mail.util.ByteArrayDataSource:

DataSource source = new ByteArrayDataSource(pdffile, "application/pdf");

Как вы, наверное, знаете, если PDF находится в файловой системе, было бы проще FileDataSource:

DataSource source = new FileDataSource(pdfpath);
3 голосов
/ 16 ноября 2009

ответ jheddings мне кажется правильным, но я также добавлю, что, если по какой-то причине вы используете Spring Framework в своем приложении, вы можете воспользоваться Spring MimeMessageHelper, который включает в себя хороший метод addAttachment () ( и облегчает создание остальной части сообщения).

...