我配置了 postfix + covecot 并且一切正常,直到我意识到用户可以发送以任何其他电子邮件签名的电子邮件,例如我有邮件[电子邮件保护]我可以发送电子邮件[电子邮件保护],但 postfix 不应该允许我这样做。我不知道如何防止这种行为。
我的配置文件:
后缀
主文件:http://paste.kde.org/464534/
master.cf:http://paste.kde.org/464540/
鸽舍
dovecot.conf:paste.kde.org/464546/
非常感谢你的帮助;]
答案1
简短的回答是,您不能。SMTP 根本就不是为此设计的。在过去(tm),邮件服务器准备为所有人转发邮件。这在垃圾邮件时代被证明是不可持续的,现在邮件服务器通常只为合法用户社区转发邮件,这些用户社区通过 IP 地址、身份验证或两者来识别。但它们通常仍会转发任何任何此类用户的邮件,甚至包括声称来自该用户以外的其他人的邮件。
我确信可以限制您的邮件服务器,这样您只允许经过身份验证的用户发送他们已验证身份的用户的邮件。您还可以限制您的服务器以拒绝来自组织外部但声称来自内部的电子邮件。但我不建议这样做,因为它会形成一种虚假期望的文化:您的用户知道他们可以信任内部收到的内部邮件的发件人,因此可能会开始信任内部收到的外部邮件的发件人(您无法验证),或者信任外部收到的内部邮件的发件人(您无法强制执行)。
在我看来,更好的做法是教育用户他们不能信任电子邮件的声明发件人。如果你真的想验证电子邮件的发件人,可以研究一下加密技术,比如开放PGP,并让您的用户创建、交换和使用他们的密钥。
编辑:我不是 gmail 用户,所以我不知道 gmail 是否会阻止经过身份验证的用户发送来自其他发件人的电子邮件。但正如我上面所说,即使它确实如此,也无法阻止某人向声称来自此类 gmail 用户的第三方收件人发送电子邮件(是的,我知道 gmail.com 发布了 SPF 记录;但它是一条弱记录,以 结尾?all
,无论如何您都不能强制收件人的邮件服务器检查它)。 假装电子邮件可以验证发件人身份是个坏主意,因为尽管在某些情况下它可能确实如此,但在所有情况下(甚至大多数情况下)却并非如此。
答案2
从技术上来说,不可能通过普通 SMTP 来验证发件人。
但是,通过端口 587 进行加密和验证提交已经十年了;您应该教育用户如何使用它。
在 Postfix 中启用它非常容易;只需取消注释 master.cf 中的提交示例,并拒绝通过端口 25 提交。