当我将图像添加为MimeBodyPart.INLINE时,附件显示在iphone上除外,使用javamail将图像附加为签名的最佳方法是什么? 如果我删除" imagePart",则所有其他附件都可以正常使用
我用过:
MimeMessage m = new MimeMessage(session);
MimeMultipart content = new MimeMultipart("related");
// ContentID is used by both parts
String cid = ContentIdGenerator.getContentId();
// HTML part
String textPartSaine = Tools.convertSymbolToUTF8(emailContenu, true);
MimeBodyPart textPart = new MimeBodyPart();
textPart.setText("<html><head>"
+ "<title></title>"
+ "</head>\n"
+ "<body>"
+ "<div>"+ textPartSaine.replaceAll("\n", "<BR/>") +"</div><BR/><BR/>"
+ "<div><img src=\"cid:"
+ cid
+ "\" /></div><BR/><BR/>" + "</body></html>",
"US-ASCII", "html");
content.addBodyPart(textPart);
// Image part
if(signature != null && signature.exists()){
MimeBodyPart imagePart = new MimeBodyPart();
imagePart.attachFile(signature);
imagePart.setContentID("<" + cid + ">");
imagePart.setDisposition(MimeBodyPart.INLINE);
content.addBodyPart(imagePart);
}
if(fichiers != null && fichiers.length > 0) {
for(i = 0; i < fichiers.length; i++) {
partie = new MimeBodyPart();
partie.attachFile(fichiers[i]);
content.addBodyPart(partie);
}
}
由于
答案 0 :(得分:0)
解决 multipart / mixed(将包含文本和附件) multipart / alternative(将包含文本和HTML) multipart / related(HTML +嵌入图像) image1(Content-Id:xxx) 图像2 ... 附件1 附件2 ...