2009-11-16 9 views
4

JavaMail을 사용하여 PDF 파일을 보내야합니다. PDF는 현재 바이트 []입니다. DataSource에 어떻게 가져 옵니까?JavaMail을 사용하여 전자 메일에 파일을 첨부하는 방법

byte[] pdffile = .... 

messageBodyPart = new MimeBodyPart(); 

DataSource source = ??? 

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

multipart.addBodyPart(messageBodyPart); 

답변

7

사용 javax.mail.util.ByteArrayDataSource : 당신이 아마 알고있는 PDF는 파일 시스템에있는 경우

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

는, 그것이 FileDataSource에 쉬울 것 : 대답

DataSource source = new FileDataSource(pdfpath); 
+0

우수! 어떤 이유로 든 javax.mail.util 패키지를 가지고 있지 않았기 때문에 다운로드해야했습니다. – Tommy

3

jheddings는 정확 보인다 나 또한, 만약 당신이 당신의 애플리케이션에서 Spring 프레임 워크를 사용하고 있다면, Spring MimeMessageHelper를 이용할 수있다. ice addAttachment() 메소드 (나머지 메시지 작성을 더 쉽게 만든다).

+4

CommonsEmail (http://commons.apache.org/email/)도 가치가 있습니다. Spring을 사용하고 있지 않다면 이메일 지원을 받기 위해 몇 MB 정도의 jar 파일을 가져와야합니다. 따라서 Commons는 더 단순하게 유지할 수 있습니다. –

+0

좋은 제안; 나는 단지이 목적을 위해 Spring을 추가하지 않을 것이지만, 많은 사람들은 이미 그것을 사용하고 있습니다. –

관련 문제