Java メール API はストリーミングを使用しますか? これを確認するためのソース コードはどこで入手できますか。また、生モードと非生モードを使用してメールを送信しようとしています。raw モードでは、入力ストリームを MimeMessage コンストラクターに渡すことができます:[/b]
new MimeMessage(session, doc.getBodyInputStream());
非生モードでは、次のことを行う必要があります MIME タイプは任意であるため、 and を使用する必要がDataHandler
ありDataSource
ます。インターフェイス コントラクトは、DataSource
を呼び出すたびに新しい inputStream を提供することを示しているため、大きなサイズまたはドキュメントに対して OOM をスローgetInputStream()
するデータを に保持する必要がありbyte[]
ます。これを回避する方法はありますか?
MimeMessage msg = new MimeMessage(session);
byte[] bArr = doc.getBody();
ByteArrayInputStream ins = new ByteArrayInputStream(
bArr != null && bArr.length > 0 ? bArr : "".getBytes());
msg.setDataHandler(new DataHandler( new ByteArrayDataSource(ins, mimeType)));