今晚我要在我的服务器上运行一些扫描,并且想禁用电子邮件通知,因为有可能会发送很多电子邮件通知。
我正打算发行
service postfix stop
当网络扫描发生时。
如果postfix
停止,邮件消息是否会进入队列并在服务再次启动时发送?如果是这样,有没有办法轻松删除任何排队的消息?这些消息将通过 php 的函数触发mail
,该函数通常会传递给postfix
.
答案1
PHPmail
函数将调用sendmail
二进制文件来发送消息。因此不需要运行 postfix 守护进程。
Sendmail 会将电子邮件放入 maildrop 队列中。当 postfix 开始运行时,pickup
守护进程将选择消息并发送它。当 postfix 没有运行时,电子邮件永远保留在 maildrop 队列中,直到 postfix 再次运行时被拾取。
资源:Postfix 架构概述
本地提交通过 Postfix sendmail(1) 兼容性命令接收,并通过特权 postdrop(1) 命令在 maildrop 队列中排队。这种安排甚至在 Postfix 邮件系统未运行时也有效。本地pickup(8)服务器拾取本地提交,强制执行一些健全性检查以保护Postfix,并将发件人、收件人和消息内容提供给cleanup(8)服务器。
如果是这样,有没有办法轻松删除任何排队的消息
是的。由于电子邮件存储在 maildrop 队列中,因此您可以postsuper -d ALL maildrop
运行所有邮件。看男子 1 后超级。
# postsuper -d ALL maildrop
postsuper: Deleted: 1 message