我正在尝试使用 Javamail 发送会议邀请。在多部分中,我正在创建三个 mimebodypart,1.HTML 邮件正文部分 2.Calendar Inivte Part 3.Signature Image 部分(这部分是问题)
但是当我发送邮件时,签名图像部分被转换为 AT00001.bin 并显示而不是签名图像。
如果我从邮件中删除日历邀请部分,则会显示图像。 经过一番研究,我知道附件部分必须是邮件中的最后一部分,以避免创建此文件,但这样做之后问题仍然存在。(如您在 mimebody addpart 序列中所见)
代码部分如下:
Multipart multipart = new MimeMultipart("mixed");
BodyPart messageBodyPart = buildHtmlTextPart(); //html is read and added to the mail body part
BodyPart calendarPart = buildCalendarPart();
BodyPart signatureImagePart = buildSignatureImagePart(); //image is read and added as a content part of html.
multipart.addBodyPart(messageBodyPart);
multipart.addBodyPart(calendarPart);
multipart.addBodyPart(signatureImagePart);
buildSignatureImagePart() 如下,
MimeBodyPart signatureimagepart = new MimeBodyPart();
DataSource fds = new FileDataSource(filePath); //filepath is image file location
signatureimagepart.setDataHandler(new DataHandler(fds));
signatureimagepart.setHeader("Content-ID", "<my-image-id>");
buildHtmlTextPart() 如下,
MimeBodyPart descriptionPart = new MimeBodyPart();
descriptionPart.setContent("<html><body><b>Test</b> email <img src='cid:my-image-id'></body></html>", "text/html; charset=utf-8");
请告诉我我是否在这方面做错了什么来获取图像部分。还有其他方法可以做到这一点吗?