我将使用 JavaMail 创建一个带有附件的 EML 文件。
我成功创建了一个简单的 EML 文件,但添加附件无法正常工作。我要添加一个 PDF 文件。我的 EML 文件将成功创建。如果我使用 Outlook 打开生成的 EML 文件,我不会发现 PDF 文件作为附件,但会发现 EML 文件本身作为附件。有人有想法吗?
我尝试了两种变体(结果相同),我使用了FileDataSource
类和简单的方法MimeBodyPart#attachFile(File)
.
我将发布一个例子:
File pdfFile = new File("somePdfFile");
Properties p = System.getProperties();
Session session = Session.getInstance(p);
MimeMessage message = new MimeMessage(session);
// MimeBodyPart txt = new MimeBodyPart();
// txt.setText("");
MimeBodyPart mbp = new MimeBodyPart();
mbp.attachFile(attachment);
// FileDataSource fds = new FileDataSource(attachment);
// fds.setFileTypeMap(new FileTypeMap() {
//
// @Override
// public String getContentType(String arg0) {
// return "application/pdf";
// }
//
// @Override
// public String getContentType(File file) {
// return "application/pdf";
// }
//
// });
// mbp.setDataHandler(new DataHandler(fds));
// mbp.setFileName("\"" + attachment.getName() + "\"");
// mbp.setDisposition(MimePart.ATTACHMENT);
// mbp.setHeader("Content-ID", "Attachment");
Multipart mp = new MimeMultipart();
// mp.addBodyPart(txt);
mp.addBodyPart(mbp);
message.setContent(mp);
File emlFile = new File("message.eml");
emlFile.createNewFile();
message.writeTo(new FileOutputStream(emlFile));
// do something with the EML file
// Desktop.getDesktop().open(emlFile);
使用 Java 创建 .eml(电子邮件)文件 https://stackoverflow.com/questions/157195/create-an-eml-e-mail-file-in-java
感谢您的答复。我上传了一个 PDF 文件(我用于测试,它是使用 Crystal Reports 生成的简单 HelloWorld)和生成的 EML 文件,其中应包含该 PDF 文件。
我刚刚注意到,如果我使用 Apple Mail 或 Outlook Express 打开链接的 EML 文件,它就可以工作(但无法编辑)。也许这是 Microsoft Outlook 的问题?
链接已删除
您应该尝试将我提到的标题行添加到邮件的最顶部,然后看看 Outlook 如何处理它。添加一个To:
, From:
, Subject:
甚至可能是一个Date:
其中包含真实数据,Outlook 更有可能将其视为一条消息,而不仅仅是一个文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)