我试图在电子邮件中使用JavaMail APi像here一样在电子邮件中嵌入链接。 这是我的代码:在电子邮件中嵌入使用JavaMail附加的文件中的链接不起作用
MimeMultipart multipart = new MimeMultipart("related");
BodyPart messageBodyPart = new MimeBodyPart();
String attachment = "/path/test.pdf";
File fAtachh = new File(attachment);
String htmlText = "<a href='cid:file'>test.pdf</a>";
messageBodyPart.setContent(htmlText, "text/html");
multipart.addBodyPart(messageBodyPart);
MimeBodyPart messageBodyPartAttach = new MimeBodyPart();
try {
\t messageBodyPartAttach.attachFile(fAtachh);
} catch (IOException e) {
\t logger.info("Exception" + e.getMessage());
}
messageBodyPartAttach.setContentID("<file>");
multipart.addBodyPart(messageBodyPartAttach);
message.setContent(multipart);
的问题是,链接不起作用:
如果改变最后的代码:
MimeMultipart multipart = new MimeMultipart("related");
MimeBodyPart messageBodyPart = new MimeBodyPart();
String attachment = "/path/test.pdf";
String htmlText = "<a href='cid:file'>test.pdf</a>";
messageBodyPart.setContent(htmlText, "text/html");
multipart.addBodyPart(messageBodyPart);
MimeBodyPart messageBodyPartAttach = new MimeBodyPart();
DataSource fds = new FileDataSource
\t (attachment);
messageBodyPartAttach.setDataHandler(new DataHandler(fds));
messageBodyPartAttach.setHeader("Content-ID","<file>");
multipart.addBodyPart(messageBodyPartAttach);
message.setContent(multipart);
作品链接,但文件名和扩展名是错误的:
我试图通过方法来更改文件名:
messageBodyPartAttach.setFileName("test.pdf");
但是如果我设置了文件名,那么li nk不像第一个代码那样工作。
有什么建议吗?
谢谢!
我试图完成将正文消息中附加的文档链接而不显示文件的内容。 我已将Content-Disposition设置为INLINE,但不起作用。 无论如何,我同意你的意见。在HTML文本中附加文件似乎不是一个好主意。大多数电子邮件提供商可能会将该文件解释为对系统有危险。 非常感谢。 –