2012-09-18 27 views
2

我是新來的java郵件。我想發送帶有圖像附件的郵件。我已經嘗試了下面的代碼來附加郵件的圖像。如何用java中的郵件上傳圖片附件?

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

你設置MIME類型爲'應用程序/八位字節stream' - 不它看起來更好,如果你使用'圖像/ PNG'或任何適合的圖像格式? –

+0

請分享一些例子。 –

+0

javax.mail庫 –

回答

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

圖像文件已正確連接併發送至郵件。但附加的圖像沒有正確顯示。它顯示爲郵件中的破損文件。 –

相關問題