![如何根据发件人地址过滤电子邮件](https://linux22.com/image/614252/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E5%8F%91%E4%BB%B6%E4%BA%BA%E5%9C%B0%E5%9D%80%E8%BF%87%E6%BB%A4%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6.png)
这是我第一次在 serverfault 上发帖,所以我希望您能原谅我问了一个看似显而易见的问题。我尝试过几次 Google 搜索,但我真的不知道从哪里开始。
场景如下:我有一个在线应用程序,它代表用户发送电子邮件(当然是应他们的要求)。然后目标服务器发送自动回复。当自动回复到达时(每次都来自指定的地址),我想将来自该地址的所有邮件转发给 PHP 脚本,然后该脚本将对消息执行其他操作。
问题在于:我用来发送邮件的地址实际上并不存在于我的服务器上。我基本上将“发件人”字段设置为[电子邮件保护],即使他们实际上没有我的系统上的用户帐户/电子邮件地址(出于安全原因,我也不想创建一个)。所以我必须以某种方式创建一个过滤器来捕获来自这个特定地址的所有传入消息。这可行吗?如果可行,我该怎么做?我在 Ubuntu 服务器上运行 Dovecot。我对配置服务器几乎一无所知,所以我需要非常具体的分步说明。
答案1
如果您确实希望收到回复,请不要向From:
不存在的地址发送邮件。使用实际存在的地址,这样您的应用就无需执行任何操作,只需检查邮件即可。
答案2
我真的不明白你认为不设置真实地址发送消息能获得什么安全性。你只需要一个传递到位存储桶的别名(/dev/null
),尽管你可能想要处理退回消息以检测无效客户端。
一些建议:
发送电子邮件时请遵循良好的做法。确保您具有适当的 DNS 条目或使用正确配置的中继服务器来发送邮件。
使用真实
donotreply
地址作为发件人地址。可以配置此地址将所有传入邮件发送到位存储桶。On behalf of John Doe
使用类似于发件人地址的描述性名称的描述。如果需要,使用用户地址作为回复地址。
考虑使用 procmail 或系统过滤器来匹配和处理收到的邮件。