2015-10-22 62 views
0

我有一個電子郵件,它具有multipart/alternative部分。這部分有多部分/相關部分;進入這個multipart/realted部分我有一個text/html和image/jpg。我試圖提取這兩部分,並添加標籤的HTML部分消息,並撰寫一遍。 html和圖像部分應該看起來一樣。我只在html部分插入了一個標籤。但是當我試圖再次撰寫郵件時,我無法管理。我不知道如何重新創建嵌套到另一個多部分的多部分。我有這個
到原來的電子郵件,並再次進入我的htmlmessageBodyPart。但是,當我重新創建的電子郵件顯示時,圖像被破壞。多部分嵌套到多部分嵌入式編碼圖像庫64 javamail

下面是我的發件人類的一部分。它適用於附件,純文本等。任何幫助將不勝感激!

// create a multi-part to combine the parts 
     Multipart multipart = new MimeMultipart(
       setSubtype(origMessage)); 

     // create a new message part for body text 
     MimeBodyPart messageBodyPart = new MimeBodyPart(); 

      messageBodyPart.setText(message); 
      messageBodyPart.setDisposition(MimePart.INLINE); 
      multipart.addBodyPart(messageBodyPart); 

      BodyPart htmlmessageBodyPart = new MimeBodyPart(); 
      htmlmessageBodyPart.setContent(html, content); 
      htmlmessageBodyPart.setDisposition("null"); 
      multipart.addBodyPart(htmlmessageBodyPart); 

     MimeBodyPart imageBodyPart = new MimeBodyPart(); 
     imageBodyPart.setHeader("Content_ID", 
       "<[email protected]>"); 
     imageBodyPart.setDisposition(MimePart.INLINE); 
     imageBodyPart.setContent(html,"image/png"); 
     imageBodyPart.attachFile(file); 
     multipart.addBodyPart(imageBodyPart); 

     msg.setContent(multipart1); 

     Transport.send(msg); 

回答

0

您的原始消息有一個額外級別的嵌套multiparts,從代碼中缺少。

// add text/plain part to multipart, then... 
Multipart innerMultipart = new MimeMulpart("related"); 
// add html and image parts to innerMultipart 
MimeBodyPart mbp = new MimeBodyPart(); 
mbp.setContent(innerMultipart); 
multipart.addBodyPart(mbp); 
+0

謝謝比爾!現在我的發件人正在工作。我想知道是否可以將圖像從原始消息傳遞給我的發件人,而無需先將其下載到硬盤驅動器,然後再次加載它? – George

+0

不幸的是,沒有。 –

+0

再次感謝您! – George