001-011184
受信プロトコルをIMAP4にしているとき、特定のコマンドが実行失敗したにもかかわらずメールが受信された場合、内部処理の失敗に関するエラーログに失敗の原因が出力されない。
- 種別
- 不具合
- 機能
-
- メール
- 再現バージョン
-
- 4.0.0
- 4.0.1
- 4.0.2
- 4.0.3
- 4.2.0
- 4.2.1
- 4.2.2
- 4.2.3
- 4.2.4
- 4.2.5
- 4.2.6
- 4.6.0
- 4.6.1
- 4.6.2
- 4.6.3
- 4.10.0
- 4.10.1
- 4.10.2
- 4.10.3
- 5.0.0
- 5.0.1
- 5.0.2
- 5.5.0
- 5.5.1
- 5.9.0
- 5.9.1
- 5.9.2
- 改修バージョン
- 5.15.0
- 公開日
- 2022-07-19
- 更新日
- 2022-10-28
詳細
【発生条件】
パターン1:
パターン1:
次の条件をすべて満たす場合に発生します。
- 受信プロトコルに「IMAP4」を設定したメールサーバーを使用する。
- 受信メールサーバーのメールをサーバーに残す設定にしている。
- メール受信時、受信メールサーバーのSTORE {メールサーバー側に保存されているメールメッセージのID} +FLAGS.SILENT (\Seen)コマンドが実行失敗する。
パターン2:
次の条件をすべて満たす場合に発生します。
- 受信プロトコルに「IMAP4」を設定したメールサーバーを使用する。
- 受信メールサーバーのメールをサーバーから削除する設定にしている。
- メール受信時、受信メールサーバーのSTORE {メールサーバー側に保存されているメールメッセージのID} +FLAGS.SILENT (\Deleted)、またはEXPUNGEコマンドが実行失敗する。
※本記事はパターン1の条件を満たす再現例を記載します。
【準備】
- ユーザーを追加します。
例:
ユーザー1(システム管理者) - ロギングで、メールの「警告」のログを出力する設定にします。
例:
------------
対象カテゴリー:メール
深刻度:警告
ログ:出力する
出力先:データベースログ
------------
補足:- (システム管理画面)「ロギング > ログ一覧 >ログの設定」画面で設定します。
- 受信プロトコルに「IMAP4」を設定した受信メールサーバーを追加します。
例:
------------------
メールサーバーの名称:メールサーバー1
受信プロトコル:IMAP4
------------------ - ユーザー1に、受信メールサーバーのメールをサーバーに残す設定でメールアカウントを追加します。
例:
------------------
メールサーバー:メールサーバー1
E-mail:user1@xxxxx.co.jp
受信メールアカウント:user1
受信メールサーバーのメール:メールをサーバーに残す
------------------ - ユーザー1に、メールを送信します。
例:
------------------
標題:メール1
To:user1@xxxxx.co.jp
------------------
【再現手順】
- ユーザー1でアプリケーション画面にログインし、[メール] > [受信]の順にクリックします。
補足:- このとき、受信メールサーバーのSTORE {メールサーバー側に保存されているメールメッセージのID} +FLAGS.SILENT (\Seen)コマンドが実行失敗したとします。
- このとき、受信メールサーバーのSTORE {メールサーバー側に保存されているメールメッセージのID} +FLAGS.SILENT (\Seen)コマンドが実行失敗したとします。
- ユーザー1でシステム管理画面にログインし、[基本システムの管理] > [ロギング] > [ログ一覧] > [メール]の順にクリックします。
→現象発生:
内部処理の失敗に関するエラーログに、失敗の原因が出力されません。
例:
------------------
[receive] Failed (account:garoon, protocol:imap4, command:STORE, flag:+FLAGS.SILENT[\Seen])
------------------
例:
------------------
[receive] Failed (account_id:1, account:garoon, protocol:imap4, command:'STORE 1 flag:+FLAGS.SILENT[\Seen]', messages:'NO - store error: can't store that data')
------------------
例:
------------------
[receive] Failed (account:garoon, protocol:imap4, command:STORE, flag:+FLAGS.SILENT[\Seen])
------------------
→正しい結果:
内部処理の失敗に関するエラーログに、失敗の原因が出力されます。例:
------------------
[receive] Failed (account_id:1, account:garoon, protocol:imap4, command:'STORE 1 flag:+FLAGS.SILENT[\Seen]', messages:'NO - store error: can't store that data')
------------------
補足:
- 手順1で、エラーが発生せず、メール1が受信される現象が発生します。
- STORE {メールサーバー側に保存されているメールメッセージのID} +FLAGS.SILENT (\Seen)コマンドが実行失敗した場合、受信メールサーバーのメール1が既読になりません。手順1のあとに再度[受信]をクリックすると、メール1が重複して受信されます。
- コマンドの実行失敗が解消されると、メールの重複受信も解消されます。
- パターン2の条件を満たす場合、手順2を実施したとき、次のエラーログが出力されるのが正しい結果です。
- 受信メールサーバーのSTORE {メールサーバー側に保存されているメールメッセージのID} +FLAGS.SILENT (\Deleted)コマンドが実行失敗した場合
例:
------------------
[receive] Failed (account_id:**, account:garoon, protocol:imap4, command:'STORE ** flag:+FLAGS.SILENT[\Deleted]', messages:'**')
------------------ - 受信メールサーバーのSTORE {メールサーバー側に保存されているメールメッセージのID} +FLAGS.SILENT EXPUNGEコマンドが実行失敗した場合
例:
------------------
[receive] Failed (account_id:**, account:garoon, protocol:imap4, command:'EXPUNGE', messages:'**')
------------------
- 受信メールサーバーのSTORE {メールサーバー側に保存されているメールメッセージのID} +FLAGS.SILENT (\Deleted)コマンドが実行失敗した場合
回避/対応方法
【回避方法】
次のバージョンの製品で本現象を改修しています。バージョンアップを検討してください。
次のバージョンの製品で本現象を改修しています。バージョンアップを検討してください。
- バージョン 5.15.0のGaroon
-------------------------------------------------------------
【更新履歴】
2022/09/02 タイトルと詳細を更新しました。