我可以阻止 sendmail 发送电子邮件而是将其保存到文件中吗?

我可以阻止 sendmail 发送电子邮件而是将其保存到文件中吗?

我想在虚拟服务器上测试 Newsletter 应用程序,但我不想让我的数据库(从实时服务器转储)中的所有客户端都收到电子邮件。有没有办法阻止 sendmail 真正发送这些邮件,而是将它们保存到文件或类似的东西中?

答案1

你可以做这样的事情:

LOCAL_CONFIG
# File that contains recipients usernames that interest us in this test
F{Users} -o /etc/mail/users-to-test
# File that contains recipients domains that interest us in this test
F{Domains} -o /etc/mail/domains-to-test

LOCAL_RULE_2
R $={Users} < @ $={Domains} . >      $#discard $: discard

/etc/mail/users-to-test 包含我们不希望他们从测试服务器接收电子邮件的用户名。规则集 2 的这一附加内容将丢弃发送给他们的所有电子邮件,并且假定上述规则集适用于在测试机器上运行的 sendmail,而不是生产服务器上的 sendmail。

PS:制表符将规则的左侧与右侧分开。制表符而不是空格,因此请勿复制粘贴。

答案2

我们在专用 SMTP 服务器上使用多个 sendmail 实例(每个实例监听不同的虚拟接口)来实现这一点,该服务器还运行 cyrus IMAP 服务器。我们有多个实例,因为我们将有多组开发人员/测试人员尝试不同的事物。

在 sendmail mc 文件中...

FEATURE(`mailertable', `hash -o /etc/mail/mroute2-mailertable.db')dnl

在 mailertable 文件中(字段由制表符分隔,行的顺序很重要)...

mailtest.ncl.ac.uk smtp:mailtest.ncl.ac.uk
.         local:paul

该示例将正常传送给 mailtest.ncl.ac.uk 域中的用户的消息,其他所有消息都将传送到 paul 的本地邮箱。如果您希望将所有消息存储在本地邮箱中,则只需一行表单

.    local:paul

应该这么做。

答案3

如果您有一个 Windows 机器,那么您可以运行一个简单的 .EXE 文件——无需安装。

http://smtp4dev.codeplex.com/

与 Windows 7/Vista/XP/2003/2010 兼容的虚拟 SMTP 服务器。位于系统托盘中,不传送收到的消息。可以快速查看、保存收到的消息并检查其来源/结构。适用于测试/调试生成电子邮件的软件。

我们在我们的开发系统中使用它并且效果很好。

相关内容