Dovecotで時々サーバーに接続できなくなる現象について紹介します。
DovecotのPOPやIMAPサーバーに時々接続できなくなります。もう一度実行すると接続できるケースが多々あります。再現性がないため、問題であることに、なかなか気づきません。
連続して複数のメールアカウントでPOP/IMAPサーバーに対してアクセスすると発生する頻度が高いです。
Outlookの場合は、POPサーバー/IMAPサーバーへのアクセス時に(0x80042108)のエラーが発生します。
のエラーメッセージが表示されます。
いくつかの原因が考えられます。
mail_max_userip_connections の値が小さいため、アクセスが拒否されている可能性があります。
ファイルの mail_max_userip_connections に大きな値を設定すると解消される場合があります。
プロセスが大量に生成されており、処理が間に合わない可能性があります。
service { service_count } でサービスの上限数を設定します。
service pop3-login {
service_count=1
}
service imap-login {
service_count=1
}
service_countは以前のバージョンでは、
を記述することと同等です。
設定ファイルに"login_process_per_connection = no"を記述すると、
のワーニングが発生します。
メモリ不足で処理落ちしている可能性があります。メモリを1GBから4GBに増やしたところ、エラーが発生しなくなりました。
特に、Linuxのソフトウェアアップデート後に現象が発生した場合はメモリ不足が原因の可能性が高いです。
Dovecotではなく、SMTPの制限により接続制限されている可能性もあります。/var/log/maillog に "statistics: max connection rate n/60s for (smtp:nnn.nnn.nnn.nnn)" メッセージが記録された場合はSMTPが原因の可能性があります。
対処法は「Postfix で "statistics: max connection rate n/60s for (smtp:nnn.nnn.nnn.nnn)" メッセージがログに表示される」を参照してください。
クライアントPCのWindows Defenderのリアルタイム保護をOFFにすると問題が解消される場合があります。
クライアントPCのWindows ファイアウォールを解除すると問題が解消される場合があります。
ネットワークの性能が低下しており、通信断が発生することが原因の場合があります。クライアントマシンがHyper-Vの場合に発生するケースが多いです。対処法はこちらの記事を参照してください。
上記の対策でも解消しない場合は、OSを最新にして再インストールすると解決できる場合があります。