1

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

3 に答える 3