Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
この節では,JavaMailを利用する場合の注意事項について説明します。
次のクラスのメソッドでは,JavaMail仕様どおりに例外が発生しません。
項番 | クラス名 | メソッド名 |
---|---|---|
1 | javax.mail.Message | setFlag,setFlags |
2 | javax.mail.Folder | setFlags |
READ_ONLYを設定したjavax.mail.Folderオブジェクトから取得したjavax.mail.Messageオブジェクトに対して,表中に示したメソッドでフラグの値を変更しても,READ_WRITEを設定したときと同様に正しくフラグが設定されます。
ただし,POP3の場合,READ_ONLYでフォルダをオープンし,メッセージにDELETEDフラグを設定しても,実際にはメールは削除されません。
JavaMail仕様ではMessageのgetInputStreamメソッドとgetContentメソッドを使用した場合,SEENフラグが設定される仕様となっていますが,実際にはSEENフラグは設定されません。
アプリケーションサーバで使用できるJavaMailのプロバイダは,アプリケーションサーバがデフォルトで提供するSMTP,SMTPSおよびPOP3のプロバイダだけです。javamail.providersファイルを使用して別のプロバイダに差し替えた場合の動作は保証しません。
JavaMailが不正と見なすレスポンスコードは厳密なRFC仕様とは異なり,RFC仕様で不正と見なすレスポンスコードを不正と見なさない場合があります。そのため,RFC仕様以外の不正なレスポンスを受け取ったことを示すメッセージ(KDJE59111-EまたはKDJE59112-E)ではなく,異常値のレスポンスコードを受け取ったことを示すメッセージ(KDJE59107-E,KDJE59108-E,KDJE59109-EまたはKDJE59110-E)を出力する場合があります。
アプリケーションでメールサーバとの接続およびメールの受信をしたあとに,次のメソッドを呼ばないでアプリケーションの停止またはリロードを実行すると,KDJE59106-Eメッセージを出力する場合があります。
この場合,それぞれのcloseメソッドを呼んでいるかどうかを確認してください。
なお,KDJE59106-Eメッセージは出力しますが,アプリケーションの停止およびリロードの処理には影響ありません。また,JavaMailの動作にも影響はありません。
メールのヘッダで,Reply-Toヘッダフィールドに「Reply-To:」だけが指定され,アドレスの指定がない場合,アプリケーションサーバのJavaMailでは,javax.mail.MimeMessageクラスのgetReplyToメソッドに,getFromメソッドの戻り値を返さないで,長さ0のjavax.mail.Addressオブジェクトの配列を返します。
javax.mail.internet.MimeUtilityクラスのencodeメソッドでエンコード方式に"base64"を用いた場合,Component Containerのバージョンおよび戻り値として得たOutputStreamに対するcloseメソッドの実行有無により,末尾への改行("\r\n")付与の有無が次のように異なります。
Component Containerのバージョン | OutputStream.closeメソッドの実行の有無 | 末尾への改行付与 |
---|---|---|
09-00以前 | 有 | 付与しない |
無 | 付与しない | |
09-50以降 | 有 | 付与する |
無 | 付与しない |
MimeUtility.encodeメソッドの戻り値として得たOutputStreamの末尾に不要な改行が存在する場合は,改行文字を削除してください。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.