メールに画像を添付した場合、HTMLコンテンツに画像を配置するにはどうすればよいですか?ファイル名を画像ソースとして使用しようとしましたが、うまくいかないようです。
img
タグのsrc="cid:bgBoletin"
プロパティでも同じように使用できます。
あなたの質問への答えは春のドキュメントにあります ここ 。
mailSender.send(new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws MessagingException {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8");
message.setFrom("[email protected]");
message.setTo("[email protected]");
message.setSubject("my subject");
message.setText("my text <img src='cid:myLogo'>", true);
message.addInline("myLogo", new ClassPathResource("img/mylogo.gif"));
}
});
メッセージの本文は、マルチパートメッセージの一部の1つです(メッセージをマルチパートメッセージに設定するMimeMessageHelperのコンストラクターでtrueに設定された2番目のパラメーターに注意してください)。
行message.addInline("myLogo"...
は、マルチパートメッセージの別の部分として画像を追加します。
.setText
を使用して、電子メールメッセージの本文(HTMLコンテンツ)を設定できます。
タグcidを使用すると、マルチパートメールの他の部分(画像)を参照できます。 imgsrc属性がsrc='cid:myLogo'
であることに注意してください。 cidは、マルチパートメッセージの一部として送信される画像のコンテンツIDです。
私はこのようにやっています
_mime = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource("C:\\bgBoletin.jpg");
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID", "<bgBoletin>");
_mime.addBodyPart(messageBodyPart);
そして、HTMファイルでは、このようにContent-IDを参照します。背景:url(cid:bgBoletin)。
これが開発中のWebサイトからの電子メールの送信に関係している場合は、サーバーに画像を保持してから、<img src="url"/>
を使用して画像にリンクしてください。
画像添付セクションにはContent-IDが必要です
--T4nu9J8b
Content-Type: image/png
Content-ID: <idname>
Content-Transfer-Encoding: base64
Content-Disposition: attachment ;filename="testimage.png"
iVBORw0KGgoAAAANS...
--T4nu9J8b--
注:Content-ID名は、指定されたとおり、angular括弧で囲む必要があります
同じContent-IDを使用してタグに埋め込みます(angular括弧なし)
<img alt="Embedded Image" src="cid:idname"/>
これにより、添付された画像をHTMLに表示できるようになります。
オプション01:
-ファイル「mySignaturePictue.jpg」をメールの添付ファイルとして添付します
-この添付ファイルを本文から参照(挿入)し、次のようなコードを使用します。<img src="cid:mySignaturePicture.png">
オプション02:
-画像をbase64文字列に変換します: http://www.motobit.com/util/base64-decoder-encoder.asp
-次のようなコードでmailtext/html-bodyに挿入します<img alt="My Image" src="data:image/jpeg;base64,AWWhcalkjsd/beginning/RXhp/of+/long/base64cod/ZgAATU0/+BlaBlubbZ5u8/61a+Xand/much/more..." />
-欠点:これはほとんどのクライアントによってブロックされ、メールサイズが大きくなります。以下を参照してください: https://www.campaignmonitor.com/blog/email-marketing/2013/02/embedded-images -in-html-email / および https://www.paperstreet.com/blog/email-marketing-embeded-images-cid-what-a-mess/