是否可以configurationsendmail接受所有出站电子邮件,但不发送出去? 它可以只是将它们logging下来,稍后再读取,或者更好,如果可以configuration为将所有出站邮件发送到预先configuration的收件人(不pipe电子邮件中指定了什么内容)。
我们致力于开发电子商务应用程序。 我们的开发环境是Ubuntu Desktop(11.10)。
我们在每个桌面上本地运行完整的应用程序堆栈 – Web服务器,应用程序服务器,数据库
我们的应用程序在发生特定事件时发送电子邮
我们实际上并不希望将电子邮件发送给目标收件人,因为这不是来自生产环境。
我们希望应用程序认为电子邮件的发送已经成功。
我们希望看到发送后的电子邮件。
请注意,我们在Ubuntu上。 如果不是sendmail,那么也许还有其他一些邮件服务器?
您可以通过修改规则集0在sendmail中执行此操作。编辑您的/etc/mail/sendmail.mc以包含(在底部):
LOCAL_RULE_0 R$* < @ $=w . > $* $#local $: $1 R$* < @ $* . > $* $#local $: user
规则集0为每个收件人select一个递送代理。 第一行检查收件人是否是本地用户。 如果收件人是本地用户,则电子邮件地址的右侧包含在类$ = w中,那么收件人被认为是本地的,并且检查将停止。 如果没有包括,那么邮件就会发送给本地用户 (您可以将其更改为您喜欢的任何系统用户)。
如果你想丢弃而不是交付给用户改变第二行:
R$* < @ $* . > $* $#local $: bit-bucket
其中位桶是在/ etc / mail / aliases中定义的别名 :
bit-bucket: /dev/null
编辑/ etc / mail / aliases文件之后,请不要忘记运行newaliases
。 注意: 您不能在规则集0中使用$#放弃 。
不要复制粘贴上面的代码片段。 规则的左侧和右侧用制表符分隔,而不是空格。 所以最好自己input。
在编辑sendmail.mc之后,你必须生成sendmail.cf然后重新启动sendmail守护进程。 在Debian系统上,这是通过运行sendmailconfig
来完成的。
如果“预期收件人”具有可计数量,则使用别名或虚拟引擎截取邮件并在本地投递