Postfix 别名多邮件投递

Postfix 别名多邮件投递

我们这里有一个 Postfix 服务器,为大约 70-80 名活跃用户提供服务。我们为系统中的所有用户设置了一个别名,并在 /etc/aliases 中手动管理。偶尔,由于多种原因,发送到这个所有用户别名的电子邮件会被推迟,下面给出了一些示例:

1 月 25 日 12:02:15 邮件服务器 postfix/local[6733]: 78D4619014D: to=, reply=local, delay=1956, delays=1936/0.01/0/20, dsn=4.2.0, status=deferred (无法为用户 user1 更新邮箱 /var/spool/mail/user1。无法创建锁定文件 /var/spool/mail/user1.lock: 文件存在)

1 月 25 日 13:42:14 邮件服务器 postfix/local[10757]: 78D4619014D: to=、relay=local、delay=7954、delays=7936/0/0/19、dsn=4.2.0、status=deferred(无法为用户 user2 更新邮箱 /var/spool/mail/user2。无法锁定独占访问:资源暂时不可用)

一旦邮件被延迟,它就会重新发送给该别名发送邮件的每个人,即使他们已经收到副本。因此,有时一条消息会经过 3 到 4 次,才能最终成功到达每个用户。

有人遇到过这个问题吗?您是如何解决的?

答案1

您不能使用 mbox 格式进行并行传送。

 local_destination_recipient_limit = 1   #this is default, just remove from main.cf
 local_destination_concurrency_limit = 1

如果锁定问题仍然存在,则表明文件系统错误或硬盘存在问题。

答案2

当然,这曾经是一个问题。十多年前,我也遇到过类似的问题。但这就是为什么有人发明了 Maildir,它完全不存在这些问题。

就你的情况而言,一封邮件的延迟时间超过两个小时。这太糟糕了。更改你的设置。即使每天有数百万封邮件,你的延迟时间也应该只有 2 秒。其他所有配置都是错误的。

答案3

我认为您使用邮箱而不是 Maildir 作为存储。因此,每次 postfix 必须在用户的邮箱文件上写入时,它都会锁定它。如果您同时锁定很多文件,可能会出现一些问题。您使用投递程序(如 procmail、dovecot-lda)还是 postfix 直接在文件中写入?在不挂起的情况下,完整的投递需要多长时间才能完成?您是否考虑使用不需要锁定文件的 Maildir 格式?您是否在 NFS/SMB 等网络存储上?

相关内容