JavaMail を使用して、添付ファイル付きの EML ファイルを作成します。
単純な EML ファイルは正常に作成されましたが、添付ファイルの追加が正しく機能しません。PDFファイルを追加します。私の EML ファイルは正常に作成されます。生成された EML ファイルを Outlook で開くと、PDF ファイルが添付ファイルとして表示されるのではなく、EML ファイル自体が添付ファイルとして表示されます。誰にもアイデアがありますか?
私は2つのバリアントを試しました(同じ結果で)、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);
ご回答ありがとうございます。PDF ファイル (テストに使用します。これは、Crystal Reports で生成された単純な HelloWorld です) と、生成された EML ファイル (PDF ファイルを含む必要があります) をアップロードしました。
リンクされた EML ファイルを Apple Mail または Outlook Express で開くと機能することに気付きました (ただし、編集はできません)。多分それはMicrosoft Outlookの問題ですか?
リンクは削除されます