JavaMailを使用した添付ファイル付きのEMLファイルの作成[終了]
質問
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)と、PDFファイルを含める必要がある生成されたEMLファイルをアップロードしました。
リンクしたEMLファイルをApple MailまたはOutlook Expressで開くと機能することに気づいただけです(ただし、編集の可能性はありません)。多分それはMicrosoft Outlookの問題ですか?
リンクが削除されました
解決
前述のヘッダー行をメッセージの一番上に追加してみて、Outlookがそれをどのように処理するかを確認してください。 To:
、 From:
、 Subject:
、さらに実際のデータを含む Date:
を追加します。また、Outlookは単なるファイルではなくメッセージとして扱う可能性が高くなります。
他のヒント
Zubi、問題は添付ファイルのコンテンツタイプが「application / octet-stream」に設定されているようです。そのため、メールリーダーはPDFファイルを「テキスト」の代替表示として使用しているようです。存在しないメッセージの本文(単なる空白)。
あなたは私を許さなければなりません。MIMEを扱ってから1年以上経ちますが、A)メッセージに本文を入れて、B)タイプを確認してください。添付ファイルのapplication / pdfに設定されます。願わくば、これにより、メールの読み取りがメッセージの本文としてPDFを表示しようとするのを防ぐことができます。
それ以外は正常に見えます...さて、本体にRFC 822ヘッダーがないので、Outlookは雌犬になります。少なくとも From:
、 To:
、および Subject:
を追加することができます。
メッセージはMY MIME解析コードを渡しました...