2012-11-24 107 views
1

在Jodd電子郵件庫http://jodd.org/doc/email.html 的主頁上,有一個非常具體的例子,說明如何使用該庫來嵌入圖像(而不僅僅是將其作爲文件附加到您要發送的電子郵件中)。如何使用Java庫Jodd電子郵件將圖像嵌入到電子郵件的html正文中?

不幸的是包含圖像的電子郵件的部分所產生的內容類型是:

Content-Type: application/octet-stream 

但爲了顯示它正確,我們需要這樣的Content-Type:

Content-Type: image/png 

例如,如果你有一個PNG圖像。

,但我似乎無法找到如何配置這個Jodd電子郵件庫內..

這就是我所尋找。謝謝:)

+0

您是否如此友善地發佈您的mail.jar和activation.jar版本?我已經測試過相同的示例,並且內容類型對我來說已經設置好了。我使用mail-1.4.5.jar和activation-1.1(.1).jar。謝謝! – igr

回答

1

如果你按照Jodd網站的例子,然後你使用方法嵌入文件embedFile()。該方法爲「快捷方式」的方法:

attach(new FileAttachment(file)); 

其中附上()是用於安裝內容的中央的,通用的方法。 FileAttachment依靠javax.mail設置內容類型,可能基於擴展名。

因此,要手動設置內容類型,請使用通用的attach()方法。例如,嵌入文件是這樣的:

.embedFile("d:\\c.xxx") 

將設定的內容類型爲「application /八位字節流」,因爲它不被識別爲XXX擴展。相反,您可以使用以下內容:

.attach(new ByteArrayAttachment(
     FileUtil.readBytes("d:\\c.xxx"), "image/png", "c.png", "c.png")) 

您可以在其中手動設置內容類型而不考慮文件名。如果你不希望加載文件的字節,你可以通過的InputStream,而不是等

另一種解決方案(如果你想使用embedFile保持)是檢查你的mime type settings

注意:由於有很多組合如何附加內容(字節,輸入流,文件,內聯...),附加方法將在Jodd 3.4.1中重構。爲了提供更開發友好的API。敬請關注;)

+1

還有一件事:Jodd 3.4.1(尚未發佈)包含一些修復程序,可修復ThunderBird和Gmail Web客戶端上的嵌入式圖像問題。 – igr

相關問題