2009-06-10 58 views
0

埋め込み画像とともにメールを送信したいと思います。そのために私は以下のコードを使用しています。完全なコードではありません。私が直面しています。そのコード
の一部javamailを使用して埋め込み画像とともにメールを送信

 Multipart multipart = new MimeMultipart("related"); 
     // Create the message part 
     BodyPart messageBodyPart; 
     messageBodyPart = new MimeBodyPart(); 
     messageBodyPart.setText(msgBody); // msgbody contains the contents of the html file 
     messageBodyPart.setHeader("Content-Type", "text/html"); 
     multipart.addBodyPart(messageBodyPart); 

     //add file attachments 
     DataSource source; 
     File file = new File("D:/sample.jpeg"); 
     if(file.exists()){ 
      // add attachment 
      messageBodyPart = new MimeBodyPart(); 
      source = new FileDataSource(file); 
      messageBodyPart.setDataHandler(new DataHandler(source)); 
      messageBodyPart.setFileName(file.getName()); 
      messageBodyPart.setHeader("Content-ID", "<BarcodeImage>"); 
      messageBodyPart.setDisposition("inline"); 
      multipart.addBodyPart(messageBodyPart); 
     } 

     // Put parts in message 
     msg.setContent(multipart); 
     Transport.send(msg); 

問題は、私は、画像を見るために、メールが、カントACLEを得ることができ、..です。そのメールには表示されませ。以下
は画像がメール内に表示し、なぜそれが添付されていないばかりではない、なぜ私を助けてください

   <img src=\"cid:BarcodeImage\" alt="Barcode" width="166" height="44" align="right" /> 

htmlファイルの私の一部です? はまた、あなたがimg src="cid:BarcodeImage"img src=\"cid:BarcodeImage\"を変更してくださいnew MimeMultipart();に(必要に応じてmsg.setContent(multipart);msg.setContent(multipart,"multipart/related");へ)

messageBodyPart.setDisposition("inline"); 
+0

あなたは、添付ファイルブロックが呼び出されていることを確認しましたか?ファイルが存在するかどうか – objects

+0

ええ、その実行..私はsopの行をチェックして..ブロックが実行されている。 –

答えて

0

は、次の行を退治してみます。 これでうまくいくはずです。

+0

もっと一般的なやり方は 'messageBodyPart.setDisposition(MimeBodyPart.INLINE)'です。 – Eric

0

変更new MimeMultipart("related");

-1

私は同様の問題を偶然見つけました。ポスト後 は私をたくさん助けた: How to send email with embedded images using Java コードの最も重要な部分である:

String cid = generateCID(); 
MimeBodyPart textPart = new MimeBodyPart(); 
textPart.setText("<html><head>" 
+ "<title>This is not usually displayed</title>" 
+ "</head>n" 
+ "<body><div><strong>Hi there!</strong></div>" 
+ "<div>Sending HTML in email is so <em>cool!</em> </div>n" 
+ "<div>And here's an image: <img src=\"cid:\"" + cid + " /></div>" 
+ "<div>I hope you like it!</div></body></html>", 
"US-ASCII", "html"); 
content.addBodyPart(textPart); 

MimeBodyPart imagePart = new MimeBodyPart(); 
imagePart.attachFile("resources/teapot.jpg"); 
imagePart.setContentID("<" + cid + ">"); 
imagePart.setDisposition(MimeBodyPart.INLINE); 
content.addBodyPart(imagePart); 

機能generateCID()ユニークな文字列を返す必要があります。 例:

java.util.UUID.randomUUID() 
関連する問題