【发布时间】:2019-10-07 10:17:11
【问题描述】:
我正在尝试使用 postfix 和/或 maildev 或其他一些工具来过滤掉地址错误的电子邮件,然后再将它们发送到我的外部 smtp 服务器。
我有自动测试,这些测试被构建为发送到垃圾邮件包罗万象的站点 mailforspam.com。代码已编写,但我认为不需要将所有这些邮件发送到外部站点。此外,我有一些用户正在向其他不存在的帐户或域发送流量。我在服务器上设置了 maildev,并将我的服务器配置为将其所有邮件发送到 maildev。但是,每次用户使用虚假电子邮件(例如 abc@xyz.com)时,maildev 都会崩溃,因为它等待的响应永远不会到来,或者无法查找主机。我可以使用 maildev 来接收所有流量(即不是中继),但随后合法流量也会被阻止。我正在尝试使用后缀传输映射来过滤发往某些域或用户的邮件,这样他们就不会通过 smtp 离开网络。
我使用端口 1025 在 10.231.20.201 上运行 maildev。
我在同一台机器 (10.231.20.201) 的端口 25 上设置了 post fix。我在 /etc/postfix/transport 中添加了一个传输映射
它有以下条目:
* relay:10.231.20.201:1025
如果我只有上面的一个条目,所有邮件都会被正确地沉没,但没有邮件出去。
如果我将其更改为:
mailforspam.com 10.231.20.201:1025
* relay:smtp.mydomain.com
它不会将 mailforspam.com 流量路由到邮件服务器,而是将所有内容路由到外部世界。随着大量自动化测试的运行,糟糕的电子邮件会阻塞 smtp 服务器——更不用说发送垃圾邮件了。
如果我将后缀传输映射设置为:
mailforspam.com 10.231.20.201:1025
* relay:smtp.mydomain.com
然后我使用类似的 swak 发送一条简单的消息:
echo "test message" | swaks --to josephspam@mailforspam.com --from "jishak@mydomain.coom" -s 10.231.20.201 -p 25
然后,当我向该域发送测试邮件时,我在 /var/log/maillog 中看到以下内容:
May 20 20:49:49 maildev postfix/error[12649]: 109C819C5A13: to=<josephspam@mailforspam.com>, relay=none, delay=6111, delays=6111/0.03/0/0.02, dsn=4.3.0, status=deferred (mail transport unavailable)
我正在尝试找出正确的方法,将发往我无法控制的域的电子邮件转发到诸如 maildev 之类的垃圾邮件陷阱。
我还需要让合法电子邮件继续发送到正确的 smtp 中继。
以前有人做过吗?有什么想法吗?
我看到的主要问题是 1. 我无法正确弄清楚如何将电子邮件路由到垃圾邮件陷阱 2. 传输映射中有一些规则,但我无法让它们与运行在同一个盒子的 1025 上的 maildev 服务器一起使用,因为这些规则似乎只在端口 25 上有效。
【问题讨论】:
标签: email smtp postfix-mta