2009-05-28 101 views
15

如果我將圖像附加到電子郵件,我如何將它放置在HTML內容中?我試圖使用文件名作爲圖像源,但似乎沒有工作。在HTML電子郵件中嵌入附加圖像

+0

您是否試圖以編程方式或通過電子郵件客戶端進行此操作? – biggusjimmus 2009-05-28 20:10:14

回答

10

更具體地說明您如何構建HTML郵件消息。

結果將是一個帶有文本/ html部分的多部分MIME消息(如果你真的是用text/plain類型的替代部分來做的話)以及幾個圖像,然後在HTML中引用它們。

請參閱RFC 1813RFC 2378瞭解有關混合MIME和相關數據中的content-id(由HTML源代碼中的CID引用)的更多信息。

+1

它被構建爲帶有html和圖像部分的多部分MIME消息。如果我正確閱讀這些RFC,這聽起來像我只需要將內容ID放在圖像附件上,然後使用cid:xxx作爲圖像源。 – user83358 2009-05-29 20:26:24

+0

這是正確的,如果其他所有內容已經存在於MIME消息中,則嵌入它們很容易。 – Lucero 2009-06-02 11:28:03

2

如果這與從您正在開發的網站發送電子郵件有關,只需將圖像保存在服務器上,然後使用<img src="url"/>鏈接到它們。

+13

...除非用戶明確確認,否則大多數現代郵件應用程序都不會出於安全原因顯示這些圖像。嵌入(小)圖像更好,以確保信息將按預期顯示(或者,這將更有可能)。 – Lucero 2009-05-28 20:22:07

+0

@我認爲@Lucero積極規避應用程序行爲是禁忌。用戶選擇使用給定的應用程序__作爲其功能,並且事實上可能會被冒犯,以至於有人已經不顧一切地繞過該功能。大多數現代郵件應用程序還允許您始終查看某些發件人(甚至是域)的圖像,讓用戶決定是否希望在未來看到您的圖像。 – 2012-03-14 15:23:15

3

我做這樣

_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在這樣的背景:網址(CID:bgBoletin)。

4

您可以使用與img標記的src="cid:bgBoletin"屬性相同的方式。

3

您的問題的答案是在春季文檔here

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")); 
    } 
}); 

消息的主體是多部分消息的部分(注意設置爲true MimeMessageHelper的構造,設置該信息至一個多部分消息的第二參數)中的一個。

message.addInline("myLogo"...添加圖像作爲多部分消息的另一部分。

您可以使用.setText設置電子郵件正文(HTML內容)。

您可以使用標籤cid引用多部分電子郵件的其他部分(您的圖片)。請注意img src屬性如何爲src='cid:myLogo'。 cid是圖像的內容ID,作爲多部分消息的一部分發送。

0

選項01:
- 文件 「mySignaturePictue.jpg」 作爲附件附加到郵件
- 從所述主體(插入)參考該安裝均可進行類似的代碼:
<img src="cid:mySignaturePicture.png">

選項02:
- 你的圖像轉換成一個base64字符串:http://www.motobit.com/util/base64-decoder-encoder.asp
- 它的代碼插入到mailtext/HTML的身體像
<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/

相關問題