2017-09-06 86 views
3

使用Spring 4.0.8不能在郵件發送圖像和春天的JavaMail

這裏是我的代碼

@Value("classpath:logo.png") 
private Resource logoImage; 

...

final MimeMessagePreparator preparator = new MimeMessagePreparator() { 
      public void prepare(MimeMessage mimeMessage) throws Exception { 
       final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true,"UTF-8"); 
       message.setTo(toEmail); 
       message.setSubject("subject"); 
       message.setFrom(from); 
       message.setReplyTo(replyTo); 
       message.addInline("logo.png", logoImage); 
       message.setText("<img src=\"cid:logo.png\"></img><div>My logo</div>", true); 
      } 
     }; 
     mailSender.send(preparator); 

我收到的電子郵件沒有圖像。

當我調試它logoImage.exists() = true.

我做什麼了?

UPD:message.getMimeMessage().writeTo(System.out)打印:

From: [email protected] 
    Reply-To: [email protected] 
    To: [email protected] 
    Message-ID: <[email protected]> 
    Subject: subject 
    MIME-Version: 1.0 
    Content-Type: multipart/mixed; 
    boundary="----=_Part_1_1016272857.1504685465423" 

    ------=_Part_1_1016272857.1504685465423 
    Content-Type: multipart/related; 
    boundary="----=_Part_2_1648931910.1504685465435" 

    ------=_Part_2_1648931910.1504685465435 
    Content-Type: text/html;charset=UTF-8 
    Content-Transfer-Encoding: 7bit 
    Content-Disposition: inline 
    Content-ID: <logo.png> 

<img src="cid:logo.png"></img><div>My logo</div> 
    ------=_Part_2_1648931910.1504685465435-- 

    ------=_Part_1_1016272857.1504685465423-- 

時加入此得到一個消息,說我的文章大多代碼,所以這裏是一些文本不介意吧:)

+0

發送時不是'null'嗎? – DevDio

+0

如果logoImage不是'null',請執行'message.getMimeMessage()。writeTo(System.out)'並將結果作爲您的問題的一部分發布。 – Lothar

回答

2

example。我認爲你應該交換方法setTextaddInline

+0

同樣的事情..... – kostepanych

+0

@kostepanych通過輸出'resource#contentLength'來檢查資源是否存在但不爲空 – Lothar

+0

logoImage.contentLength()= 5560 – kostepanych