2013-08-06 4 views
1

Я пытаюсь прикрепить готовый файл в формате PDF по почте с помощью Java, поэтому для этого я стараюсь нижеКак прикрепить Pdf файл по почте

String filename = "file.pdf"; 

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
??.write(bos); 

DataSource fds = new ByteArrayDataSource(bos.toByteArray(), "application/pdf"); 
MimeBodyPart mbp2 = new MimeBodyPart();    
mbp2.setDataHandler(new DataHandler(fds)); 
mbp2.setFileName(filename); 

Я являюсь ВЗ понять, что будет вместо «?? ». , пожалуйста, предложите мне об этом.

ответ

2

javax.mail.util.ByteArrayDataSource введены в JavaMail 1.4 и Ниже приведены некоторые указатели на то же

Если вы используете JavaMail API Spring, вы можете делать такие вещи довольно легко (или, по крайней мере, так же легко, как позволяет API JavaMail, чего мало).

Данные вложения могут быть любыми абстракциями ресурсов Spring, ByteArrayResource - это лишь один из них.

Обратите внимание, что эта часть Spring API стоит сама по себе, она не требует (но приносит пользу) контейнера Spring.

JavaMailSenderImpl mailSender = ... instantiate and configure JavaMailSenderImpl here 
final byte[] data = .... this holds my PDF data 

mailSender.send(new MimeMessagePreparator() { 
    public void prepare(MimeMessage mimeMessage) throws Exception { 
     MimeMessageHelper helper = new MimeMessageHelper(mimeMessage); 
    // set from, to, subject using helper 
    helper.addAttachment("my.pdf", new ByteArrayResource(data)); 
    } 
}); 
0

Пожалуйста, обратитесь код ниже:

if (arrayInputStream != null && arrayInputStream instanceof ByteArrayInputStream) { 
    // create the second message part with the attachment from a OutputStrean 
    MimeBodyPart attachment= new MimeBodyPart(); 
    ByteArrayDataSource ds = new ByteArrayDataSource(arrayInputStream, "application/pdf"); 
    attachment.setDataHandler(new DataHandler(ds)); 
    attachment.setFileName("Report.pdf"); 
    mimeMultipart.addBodyPart(attachment); 
} 
+0

но как насчет arrayInputStream, как? – AloNE

+0

Это вы можете обратиться сюда: http: //stackoverflow.com/questions/1502635/send-an-e-mail-with-attachment-using-java-mail-api-without-storing-in-local-mach –

+0

I я еще не понял, какой магазин в массивеInputStream – AloNE

Смежные вопросы