暂停所有要发送的电子邮件

暂停所有要发送的电子邮件

我正在开发一个向用户发送电子邮件的 Web 应用程序。我通常在 Windows 环境中使用 Argosoft Mail Server(免费软件)作为 SMTP 服务器,在其中启用了中继但关闭了实际交付。这样我就可以将 Web 应用程序指向本地服务器,并且能够通过查看外发队列来验证发送的所有电子邮件。此外,为了 100% 安全,我会使用一个不存在的 DNS 服务器来确保如果我意外启用了交付,服务器仍然无法查找任何外部地址并传递邮件。

现在我在 OSX 机器上进行开发,我正在寻找类似的解决方案。默认情况下,OSX 已安装 Postfix,因此我想我会使用它并对其进行类似的配置。但是,我似乎无法在任何地方找到禁用所有外发电子邮件的选项。本质上,我想将 Postfix 设置为开放中继服务器,但禁用所有电子邮件的传递。然后我可以查看外发队列并查看电子邮件是否符合预期。

有什么方法可以轻松实现此目的吗?或者我可以使用更好的解决方案吗?

答案1

暂停所有要发送的电子邮件

  1. main.cf,将以下内容check_recipient_access作为第一选项smtp_sender_restrictions 2

    smtpd_sender_restrictions =
        check_recipient_access regexp:/etc/postfix/onhold
        ...
        ...
    
  2. /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

相关内容