私はjsp
のページにレポートを持っており、そのレポートをPDF形式で書いています。 PDFを添付ファイル付きの電子メールとして送信したいのですが、ファイルをローカルマシンやサーバーに保存したくないのですが、添付ファイル付きの電子メールを送信したいと思います。ローカルマシンに保存せずにJAVA Mail APIを使用して添付ファイル付きのEメールを送信する
11
A
答えて
0
javax.activation.DataSource
の独自の実装を書いて、インクルードされた実装の1つ(ファイル、URLなどからの読み込み)を使用する代わりに、添付ファイルのデータをメモリから読み込む必要があります。 PDFレポートをバイト配列に格納している場合は、ByteArrayOutputStreamにラップされたバイト配列を返すDataSourceを実装できます。
5
あなたがSpring's JavaMail APIを使用する場合は、比較的簡単にこの種のものを行うことができます(あるいは、少なくとも、同じように簡単にJavaMail APIとしてあまりされていない、ことができます)。ですから、このような何かを書くことができ:
JavaMailSenderImpl mailSender = ... instantiate and configure JavaMailSenderImpl here
final byte[] data = .... this holds my PDF data
mailSender.send(new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
// set from, to, subject using helper
helper.addAttachment("my.pdf", new ByteArrayResource(data));
}
});
添付データは、Springのリソース抽象化のいずれかにすることができ、ByteArrayResource
はちょうどそれらの一つです。春のAPIのこの部分は、それ自身の上に立つ、それは必要ありません(ただし、恩恵を受けない)Springコンテナこと
注意。
6
のJavaMail 1.4ので - のmail.jarは - javax.mail.util.ByteArrayDataSource
- https://javamail.java.net/nonav/docs/api/javax/mail/util/ByteArrayDataSource.html
- (https://javamail.java.net/nonav/docs/api/)
- http://www.oracle.com/technetwork/java/javamail/index-138643.htmlが含ま - ダウンロード場所
に関して
+0
ありがとう、これは私が必要とした情報でした。 –
添付ファイル付きの電子メールを送信し、ローカルfを削除できますか?後で? – weiji