メールクライアントに Outlookシリーズを使用するときはIMAP4のIDLE命令とBroadcastフラグを無効設定にすることを推奨

メールクライアントに Outlook 2010/2013 などの Microsoft Office Outlook シリーズを使用してIMAP4サービスを利用するとき、特に負荷が高まりやすい大規模環境では、できれば E-Post IMAP4サービス側でIDLE命令とBroadcastフラグの2つを無効に設定することをお薦めします。その理由は下記の通りです。
過去にあったユーザー様からのご報告で、Outlookシリーズでの特有の現象として、以下のような現象が発生したことがあり、結果的にそれぞれE-Post側でいろいろな対応策や防止策を取った経緯があります。
現行の最新モジュールにはそれらの対応機能はすべて含まれております。
設定しないでデフォルトで対応が施されているもの、設定が必要なものがあります。
  1. IDLE命令に関するもの
  2. Outlook側が一つのセッションでIDLE命令を出すだけでなく、勝手にセッションを増やし続け、無尽蔵にセッションを増やしてSocketの上限まで増やすことにより、Outlook側で同期中メッセージのまま、IMAP受信できなくなることが多発しました。
    これを受けてE-Post側で取った対策は次の内容です。
    1. →Outlook側からIDLE命令を出し増やしたセッションに対し、E-Post側で無通信のセッションをタイムアウトデフォルト:30分 で切断するようにしその時間を変更できるようにした。
      [メール作業フォルダ] (既定値 /var/spool/epms/)
       →reg
        →epost
         →ims
          →EPST5IMAP4S
           →IDLETimeout.1
    2. →E-Post側でIDLE命令を無効に設定できるようにした。
      [メール作業フォルダ] (既定値 /var/spool/epms/)
       →reg
        →epost
         →ims
          →EPST5IMAP4S
           →IDLECmd.1
    3. →IDLE命令実施中の監視間隔 デフォルト:5秒 を変更できるようにした。
      [メール作業フォルダ] (既定値 /var/spool/epms/)
       →reg
        →epost
         →ims
          →EPST5IMAP4S
           →IDLELoop.1
    4. →IDLE命令使用時に利用されるBroadcastフラグを無効に設定できるようにした。
      [メール作業フォルダ] (既定値 /var/spool/epms/)
       →reg
        →epost
         →ims
          →EPST5IMAP4S
           →Broadcast.1

  3. NOOP命令に関するもの
  4. Outlook2013側から発せられるNOOP命令に対して、E-Postからフォルダポーリングの状態を逐一応答して返していると、突如としてOutlook 2013側がNOOP命令を異常に連続発信させることが多発しました。NOOP命令の頻度は異常で1秒間の間に平均6.4回もNOOP命令が突然大量に発信される現象となり、あたかも攻撃のようになってサーバに過負荷状態を引き起こす事象が判明したことがあります。
    1. →E-Post側でNOOP命令のポーリングに対し無効にするオプションを設け、有効時でもフォルダポーリング実行をフォルダ内に変化・変更があった場合のみに限ってデフォルト有効とした。これによりOutlook 2013側からNOOP命令を頻発することがなくなる。
      [メール作業フォルダ] (既定値 /var/spool/epms/)
       →reg
        →epost
         →ims
          →EPST5IMAP4S
           →NOOPPoll.1
         NOOP命令内でのフォルダポーリング実行の有無 0:Disable, 1:Enable (デフォルト:1)
IMAP4でメールクライアントにOutlookシリーズを使用している環境では、弊社サポートから提案として、上記 2.e であげたNOOP命令のポーリングは有効なまま、上記 1.b と 1.d であげたIDLE命令と同時に不要になるBroadcastフラグの2つを無効に設定することを推奨します。
これによりOutlook側が不用意にIDLE命令を発信し、かつ無尽蔵にセッションを増やし続けるのを防止・抑止できるほか、負荷が高まりやすい大規模環境では、メールサーバの負荷軽減に役立ちます。一方、NOOP命令のポーリングは有効のままになっていますので、Outlookでのメールの新着チェックなどは問題なく行われます。

IDLE命令とBroadcastフラグを無効に設定するには、下記の設定ファイル値を作成します。
変更後は、epstimap4dの再起動が必要です。
[メール作業フォルダ] (既定値 /var/spool/epms/)
 →reg
  →epost
   →ims
    →EPST5IMAP4S
     →IDLECmd.1
    (数値 Default 1) 0:Disable, 1:Enable
    IDLE命令の有効/無効オプション
    
[メール作業フォルダ] (既定値 /var/spool/epms/)
 →reg
  →epost
   →ims
    →EPST5IMAP4S
     →Broadcast.1
    (数値 Default 1) 0:Disable, 1:Enable
    同一フォルダの操作情報を接続中の各セッションに同報する
    Broadcastフラグの有効/無効オプション