我正在尝试配置 Postfix 以充当反垃圾邮件/反病毒服务,在 AWS 上的 Ubuntu 14.04 服务器上运行。
在办公室我们运行 Microsoft Exchange 2010,因此我只希望 Postfix 接收所有电子邮件,运行适当的扫描,然后将其转发到 Exchange 服务器并维护目标地址。
我已经尝试了大约一天的时间来配置这一切,但我不断遇到一个问题,即必须通过 UNIX 帐户或在某种别名文件中为 Postfix 定义每个电子邮件地址。我不想每次新用户启动或离开时都在 Postfix 配置中创建/定义每个电子邮件地址。
如果需要,我很乐意发布我当前配置的各个部分,但如果有人能给我指出自述文件或教程的方向,告诉我如何实现我需要的,我将非常感激。
谢谢
答案1
从我对您的问题的了解来看,您似乎试图将所有进入 postfix 的邮件转发到您的 exchange 服务器,而不对实际的目标地址进行任何验证(但进行一些反垃圾邮件过滤)。
有两件事需要配置
- 您需要让 postfix accept 充当用户的中继主机。默认情况下,这受到 的严格限制
smtpd_relay_restrictions
,因此您需要将其设置为更宽松的值,或将所有可能的收件人域添加到relay_domains
。 - 您需要让 postfix 不实际尝试将消息传递到实际目的地,而是将其转发到您选择的主机。这可以通过使用映射
transport
或更简单的relayhost
参数轻松配置。
请注意,将 postfix 放置为 exchange 的前端会产生副作用,即 exchange 会生成任何错误(例如不存在的用户),因此此时会反弹。这通常不是最好的情况,您可能需要考虑在 postfix 中添加前向验证,如其他答案中所述。
答案2
正如 Paul 所说,地址验证可以完成这项工作。您可以通过检查 Exchange 主机是否接受收件人来完成此操作,或者配置address_verify_map
使用 ldap 请求到您的活动目录。可以使用此模式识别有效的邮箱(&(objectClass=user)(mail=*))
。有关邮件帐户匹配的更多信息,请参见此处如何在 Active Directory 中查找启用邮件/邮箱的用户。
- 医生