2012-09-18 3 views
2

나는 자바 메일을 처음 사용합니다. 이미지 첨부 파일을 보내고 싶습니다. 메일에 이미지를 첨부하기 위해 다음 코드를 시도했습니다.자바에서 이미지 첨부 파일을 업로드하는 방법은 무엇입니까?

BodyPart messageBodyPart = new MimeBodyPart(); 

       if (content == null) { 
        messageBodyPart.setText(""); 
       } else { 
        messageBodyPart.setText(content); 
       } 

       // Create a multipar message 
       Multipart multipart = new MimeMultipart(); 

       // Set text message part 
       multipart.addBodyPart(messageBodyPart); 

       // Part two is attachment 
       // messageBodyPart = new MimeBodyPart(); 
       DataSource source = new ByteArrayDataSource(
         attachedFile2.getBytes("UTF-8"), 
         "application/octet-stream"); 

       //attachedFile2 is the filename of image. 
       messageBodyPart = new MimeBodyPart(); 

       messageBodyPart.setDataHandler(new DataHandler(source)); 
       messageBodyPart.setFileName(attachedFile2); 
       multipart.addBodyPart(messageBodyPart); 
       message.setContent(multipart); 

이 코드는 작동합니다. 이미지 첨부 파일과 함께받은 메일. 그러나 문제는 이미지가 지원되지 않는 형식으로 표시되거나 원본 이미지를 표시하지 않는다는 것입니다.

이 문제를 해결하는 방법을 모릅니다.

제발 도와주세요 .. 사전에

감사합니다 ..

+0

을 당신은 응용 프로그램/진수 stream''에 MIME 타입을 설정하는이 -하지 'image/png' 또는 이미지 포맷에 맞는 것이면 더 잘 보일 것입니다. –

+0

몇 가지 예를 들려주십시오. –

+0

javax.mail library 위의 –

답변

0

당신이 시도 할 수 있습니다 :

private void addImageResource(final MimeMultipart content, final String resourceName, 
    final String resourceTitle) throws MessagingException, IOException { 
    MimeBodyPart msgBodyPart = new MimeBodyPart(); 
    URL imgURL = getClass().getClassLoader().getResource(resourceName); 
    final DataSource dsImg = new FileDataSource(imgURL.getFile()); 
    msgBodyPart.setDataHandler(new DataHandler(dsImg)); 
    msgBodyPart.setHeader("Content-ID", resourceTitle); 
    content.addBodyPart(msgBodyPart); 
} 
+0

코드가 작동하지 않습니다. –

+0

무엇이 오류입니까? 이 샘플은 매일 사용되는 내 앱 중 하나에서 추출됩니다. – yodamad

+0

이미지 파일이 제대로 첨부되어 메일로 전송됩니다. 그러나 부착 된 이미지가 제대로 표시되지 않습니다. 메일에 깨진 파일로 표시됩니다. –

관련 문제