У нас есть приложение, получающее сообщения из почтового ящика.
После того, как приложение остановило загрузку, в журнале писем было следующее:
Aug 15 11:03:47 server_name postfix/virtual[16743]: 731E258003: to=<mailbox_name>, relay=virtual, delay=0.06, delays=0.04/0/0/0.02, dsn=2.0.0, status=sent (delivered to mailbo
x)
Aug 15 11:03:55 server_name postfix/pipe[3201]: 9CE9658002: to=<mailbox_name>, relay=filter, delay=0.19, delays=0.15/0/0/0.05, dsn=2.0.0, status=sent (delivered via filter ser
vice)
Aug 15 11:03:55 server_namepostfix/virtual[16743]: C6C4958003: to=<mailbox_name>, relay=virtual, delay=0.06, delays=0.05/0/0/0.01, dsn=2.0.0, status=sent (delivered to mailbo
x)
Aug 15 11:06:22 server_name postfix/pipe[6280]: 0CBA058002: to=<mailbox_name>, relay=filter, delay=0.22, delays=0.18/0/0/0.04, dsn=2.0.0, status=sent (delivered via filter ser
vice)
Aug 15 11:06:41 server_name postfix/virtual[11801]: 3CEA058003: to=<mailbox_name>, relay=virtual, delay=19, delays=0.04/0/0/19, dsn=4.2.0, status=deferred (delivery failed to
mailbox unable to lock for exclusive access: Resource temporarily unavailable)
Aug 15 11:09:31 server_name postfix/pipe[6282]: 438CF58002: to=<mailbox_name>, relay=filter, delay=0.15, delays=0.12/0/0/0.03, dsn=2.0.0, status=sent (delivered via filter ser
vice)
Aug 15 11:09:50 server_name postfix/virtual[12526]: 62A7E58004: to=<mailbox_name>, relay=virtual, delay=19, delays=0.04/0/0/19, dsn=4.2.0, status=deferred (delivery failed to
mailbox : unable to lock for exclusive access: Resource temporarily unavailable)
Aug 15 11:13:14 server_name postfix/virtual[12526]: 3CEA058003: to=<mailbox_name>, relay=virtual, delay=412, delays=394/0/0/19, dsn=4.2.0, status=deferred (delivery failed to
mailbox : unable to lock for exclusive access: Resource temporarily unavailable)
Aug 15 11:16:16 server_name postfix/pipe[6280]: D111E58002: to=<mailbox_name>, relay=filter, delay=0.18, delays=0.14/0/0/0.04, dsn=2.0.0, status=sent (delivered via filter ser
vice)
Aug 15 11:16:16 server_name postfix/virtual[12526]: 03C0E58005: to=<mailbox_name>, relay=virtual, delay=0.06, delays=0.04/0/0/0.01, dsn=2.0.0, status=sent (delivered to mailbo
x)
тогда в dovecot-info было следующее:
dovecot: Aug 15 11:03:48 Info: POP3(mailbox_name): Disconnected: Logged out top=0/0, retr=2/42139, del=2/2, size=42100
dovecot: Aug 15 11:14:23 Info: POP3(mailbox_name): Disconnected for inactivity top=0/0, retr=1/29827, del=0/1, size=29809
dovecot: Aug 15 18:01:28 Info: POP3(mailbox_name): Disconnected: Logged out top=0/0, retr=96/9469449, del=96/96, size=9467620
Из приведенных выше журналов я понял, что:
1- почтовый ящик работал нормально до 11:03:47, и сообщение было получено, как указано в dovecot-info @ 11: 03: 48
2 - после 11:03:47 сообщение не получено, а почтовый ящик @ 11:06 заблокирован для монопольного доступа
3- @ 11:14: приложение пыталось подключиться, но было отключено из-за бездействия
4-все снова пошло нормально после перезапуска службы приложений @ 18:01
Мои вопросы:
-Приложению не удалось получить доступ из-за блокировки?
-Почему приложение не пыталось получить доступ снова?
-если это проблема была связана с блокировкой входящего почтового ящика из-за более чем двух обращений одновременно, как избежать такого поведения?
-Могу ли я увеличить параметр постфикса для одновременного доступа больше 2?
Вы используете традиционный формат mbox? Вы должны учитывать преобразование все почтовые ящики в Maildir формат, чтобы избежать таких ошибок блокировки (и гораздо большей производительности).
Журналы Dovecot не кажутся особенно сложными, они просто указывают, что пользователь был отключен из-за бездействия, и это нормально.
Можете ли вы использовать IMAP вместо POP3?
POP3 предназначен для однопользовательского использования. Это из тех времен, когда вы использовали исключительно один компьютер для всего, а почтовые ящики, предлагаемые интернет-провайдерами, были очень маленькими. В то время мы забирали все электронные письма с сервера на персональный компьютер.
Из-за того, что большинство клиентов / серверов POP3 блокируют почтовый ящик при обращении к нему, другие клиенты не могут получить к нему доступ одновременно. Если соединение неожиданно закрывается клиентом, сервер, скорее всего, будет держать блокировку около 30 минут, если только блокировка не будет снята (или программное обеспечение почтового сервера не будет перезапущено).
Итак, я предполагаю, что ваше приложение неожиданно отключилось и не смогло повторно подключиться до того, как блокировка была снята сервером.
По возможности переходите на IMAP, таких недостатков нет.