質問

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);

Javaで.eml(メール)ファイルを作成


ご回答いただきありがとうございます。 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解析コードを渡しました...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top