我正在开发一个向用户发送电子邮件的 Web 应用程序。我通常在 Windows 环境中使用 Argosoft Mail Server(免费软件)作为 SMTP 服务器,在其中启用了中继但关闭了实际交付。这样我就可以将 Web 应用程序指向本地服务器,并且能够通过查看外发队列来验证发送的所有电子邮件。此外,为了 100% 安全,我会使用一个不存在的 DNS 服务器来确保如果我意外启用了交付,服务器仍然无法查找任何外部地址并传递邮件。
现在我在 OSX 机器上进行开发,我正在寻找类似的解决方案。默认情况下,OSX 已安装 Postfix,因此我想我会使用它并对其进行类似的配置。但是,我似乎无法在任何地方找到禁用所有外发电子邮件的选项。本质上,我想将 Postfix 设置为开放中继服务器,但禁用所有电子邮件的传递。然后我可以查看外发队列并查看电子邮件是否符合预期。
有什么方法可以轻松实现此目的吗?或者我可以使用更好的解决方案吗?
答案1
暂停所有要发送的电子邮件
在
main.cf
,将以下内容check_recipient_access
作为第一选项smtp_sender_restrictions
2smtpd_sender_restrictions = check_recipient_access regexp:/etc/postfix/onhold ... ...
/etc/postfix/onhold
使用下列内容创建/example\.com$/ DUNNO /^/ HOLD
所有内容都将放入保留队列,除了电子邮件(例如 example.com)。
基于Postfix地点, 改变
queue_run_delay = 3600
300 是默认值,即 5 分钟。将其更改为 3600 将使其每小时重试一次。您可以尝试将其更改为 86400(24 小时)。我认为这应该给您足够的时间来测试和检查电子邮件内容。
答案2
我一直在研究类似的问题,看起来 postsuper -h ALL 和 postsuper -H ALL 应该可以工作。http://www.postfix.org/postsuper.1.html