拡張子が.rtfのファイルをメール添付ファイルとして取得しようとしています。私は私の郵便受けにそれを手に入れることができない。javaMailで.rtfファイルを送信する
私が現在使用してコード
try
{
Message msg = new MimeMessage(session);
msg.setFrom(); // this is filled in but hidden for this question
msg.addRecipient();// this is filled in but hidden for this question
msg.setSubject("test email");
msg.setText("body test content");
msg.setSentDate(new Date());
Multipart multipart = new MimeMultipart();
MimeBodyPart messageBodyPart = new MimeBodyPart();
FileDataSource source = new FileDataSource(receiveFile);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.attachFile(backupFile);
messageBodyPart.setFileName("reportFile.rtf");
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);
Transport.send(msg);
}
receiveFileは添付ファイルとして送信する必要が問題になっているRTFファイルです。
サーバーの設定などを気にしないでください。私はこのコードを使用して電子メールを送信するので、すべてうまく動作します:) .txtファイルや.docファイルも正常に送信されているため、情報が正しいことがわかります。 reportFile.rtfとしてメールを送信しようとすると、メールが到着しません。私は2つのシステム(データハンドラ+ソースパスとattachFileパス)を2つ試してみましたが、どちらも本当に私が望むものを私に与えませんでした。
javaMailを使用してrtfファイルを添付ファイルとして使用できますか、間違った方向を探していますか?
メッセージは正常に送信されたものの、到着しない場合は、JavaMailプログラムではなくサーバーに問題があります。おそらく、サーバーはメッセージをスパムメッセージとして解釈していますか?メッセージの迷惑メールフォルダを確認しましたか? msg.setContextは、msg.setTextで設定したメッセージのテキスト内容を置き換えます。代わりに、メッセージのメインテキストコンテンツを、作成したマルチパートの最初の本文部分として設定し、添付ファイルを2番目の本文部分として設定する必要があります。 –
ええ、私は迷惑メールフォルダなどをチェックしています:)私は私の質問で述べたように、私は添付ファイルなしでこのようなメールを送信し、txtやdocなどの書類を添付してメールを送信します。私のサーバー情報がすべて正しいことを知っている...私のsuccesfull添付ファイルと唯一の違いは唯一の違いは、失敗はtempフォルダに格納されている新しく生成されたものを使用していて、私は〜のようなものだった。私の文書フォルダ。 javaMailが実際にあなたのPCに保存されていないファイルで奇妙に動作することはありますか? –
[JavaMailデバッグ出力](http://www.oracle.com/technetwork/java/javamail/faq/index.html#debug)は、メッセージが例外なく正常に送信されていることを示しています。 FileDataSourceを使用するには、ファイル**は実際にはPC(またはネットワークアクセス可能なファイルシステム)に保存する必要があります。 tempフォルダに保存されています。 Transport.sendがmsg.writeTo(new FileOutputStream( "msg.txt"));を使用する前に、メッセージが正しく構築されていることを証明する。 msg.txtファイルを調べます。または、JavaMailデバッグ出力をオンにします。 –