有时我的用户会意外删除他们的 .forward 文件,然后 Postfix 会将邮件发送至 /var/spool/mail。我希望它将邮件放入“保留”或“延迟”队列,这样我就可以注意到这种情况并帮助用户修复他们的 .forward 文件。这可能吗?
答案1
所以我找不到任何明显的方法来实现这一点。理论上,我认为应该可以使用传输来实现这一点,但我无法让它真正保留或推迟邮件。
我解决这个问题的方法(非常 hacky)是使用文件mailbox_command
中的变量main.cf
。它旨在指定要使用的外部命令,而不是邮箱投递。事实证明,它还监听 smtp 状态代码,可用于强制将邮件保留在服务器上。首先,在 中添加以下行main.cf
:
mailbox_command = /etc/postfix/defer-mail
并创建文件/etc/postfix/defer-mail
并使其看起来像这样:
#!/bin/bash
echo "4.3.0 Mail expansion not available (missing .forward file)"
exit 1
这会将邮件放入您的deferred
队列,然后可以从中移入队列hold
。