带有内联图像的html电子邮件在IPhone6s中显示垃圾字符,但在Iphone5s中不显示垃圾字符,通过JAVA发送电子邮件

带有内联图像的html电子邮件在IPhone6s中显示垃圾字符,但在Iphone5s中不显示垃圾字符,通过JAVA发送电子邮件,java,phantomjs,html-email,Java,Phantomjs,Html Email,我通过java发送内联图像电子邮件,它在gmail、yahoo电子邮件中工作,在apple mail(9.3.2)中除外,在apple mail(9.0)中工作。它在apple mail(9.3.2)中显示垃圾邮件字符。 有人能提出为什么会发生这种情况吗 MimeBodyPart messageBodyPart=新的MimeBodyPart(); setContent(htmlBody,“text/html;charset=UTF-8”) //创建多个部件 Multipart Multipart

我通过java发送内联图像电子邮件,它在gmail、yahoo电子邮件中工作,在apple mail(9.3.2)中除外,在apple mail(9.0)中工作。它在apple mail(9.3.2)中显示垃圾邮件字符。 有人能提出为什么会发生这种情况吗

MimeBodyPart messageBodyPart=新的MimeBodyPart(); setContent(htmlBody,“text/html;charset=UTF-8”)

//创建多个部件
Multipart Multipart=新的MimeMultipart();
multipart.addBodyPart(messageBodyPart);
//添加内联图像附件
如果(mapInlineImages!=null&&mapInlineImages`*在此处输入代码*`.size()>0){
设置setImageID=mapInlineImages.keySet();
for(字符串contentId:setImageID){
MimeBodyPart imagePart=新的MimeBodyPart();
setHeader(“内容ID”,即“”);
setDisposition(MimeBodyPart.INLINE);
字符串imageFilePath=mapInlineImages.get(contentId);
试一试{
imagePart.attachFile(imageFilePath);
}捕获(IOEX异常){
log.error(例如getMessage());
}
multipart.addBodyPart(imagePart);
}
}
如果(附件!=null){
multipart.addBodyPart(messageBodyPart1);
}
message.setContent(多部分);
传输。发送(消息);

如果看不到代码或错误示例,就很难知道这是否是问题所在,但iOS 9(iPhone 6S)中存在一个漏洞,如果没有明确设置宽度和高度,有时会对图像进行置乱。如果您关闭并重新打开电子邮件,此问题通常会消失,因此,这可能会提示您这是否是问题所在。

谢谢您的回复。当我在ubuntu中运行代码时,内联图像是完美的,但在windows中,它只在iPhone 6s和apple.mail 9.3.2中显示垃圾字符。我正在通过phantomjs生成图像,并在本地保存该图像,然后发送内联图像。(其中字符集=utf-8)
 // creates multi-part
 Multipart multipart = new MimeMultipart();
 multipart.addBodyPart(messageBodyPart);

 // adds inline image attachments
if (mapInlineImages != null && mapInlineImages`*enter code here*`.size() > 0) {

     Set<String> setImageID = mapInlineImages.keySet();

     for (String contentId : setImageID) {
         MimeBodyPart imagePart = new MimeBodyPart();
         imagePart.setHeader("Content-ID", "<" + contentId + ">");
         imagePart.setDisposition(MimeBodyPart.INLINE);
         String imageFilePath = mapInlineImages.get(contentId);
         try {
             imagePart.attachFile(imageFilePath);
         } catch (IOException ex) {
             log.error(ex.getMessage());
         }

         multipart.addBodyPart(imagePart);
     }
 }
 if(attachments!=null){
 multipart.addBodyPart(messageBodyPart1);
 }
 message.setContent(multipart);

 Transport.send(message);