我们有应用程序从邮箱收件箱中获取邮件。
一旦应用程序停止提取,那么我们会在maillog中进行以下操作:
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收件箱被locking为独占访问
3- @ 11:14:应用程序尝试连接,但是由于不活动而断开连接
4 – 重新启动应用程序服务@ 18:01后,一切都恢复正常
我的问题是:
– 由于locking,应用程序无法访问?
– 为什么应用程序没有尝试再次访问?
– 如果这个问题是由于同时超过2个访问的收件箱locking,如何避免这种行为?
– 我可以增加postfix参数为simultaenous访问超过2?
你使用传统的mbox格式? 您应该考虑将所有邮箱转换为Maildir格式以避免这种locking错误(以及更好的性能)。
Dovecot的日志似乎并不特别麻烦,他们只是表示用户因不活动而断开连接,这是可以的。
你可以使用IMAP而不是POP3?
POP3是为单用户使用而devise的。 从一开始就专门使用一台计算机的时代,以及ISP提供的邮箱非常小的时代, 那时我们把所有的电子邮件从服务器上取到个人电脑上。
由于大多数POP3客户端/服务器在访问邮箱时确实locking了邮箱,所以没有其他客户端可以同时访问邮箱。 如果连接意外地被客户端closures,服务器很可能会将锁保持约30分钟左右,除非锁释放(或重新启动邮件服务器软件)。
所以,我猜你的应用程序意外断开连接,并在服务器释放锁之前无法重新连接。
切换到IMAP如果可能,它没有这种缺点。