from: Facebook [email protected]
reply-to: noreply <[email protected]>
to: Achal Tomar <[email protected]>
date: Wed, Jul 11, 2012 at 6:57 PM
subject: Abhishek Awasthi tagged a photo of you on Facebook
>mailed-by: facebookmail.com
>signed-by: facebookmail.com
这是我从 Facebook 收到的邮件的详细信息,这里的 mailed-by: 和signed-by: 标题相同,这对于邮件身份验证很重要。我也想在我的 postfix 邮件服务器中实现这一点,有什么方法可以实现这一点吗?我的场景如下:- 我有一台 centOs 5 服务器,它使用 postfix 作为 MTA,该服务器使用循环负载平衡技术来平衡发送到其他服务器进行中继的邮件。所有服务器都在同一个域中,假设是“example.com”,现在我需要的是当邮件被发送到负载平衡器进行中继时,它会发送所有由同一域签名的邮件,该域的签名:标题必须包含“example.com”。此外,中继服务器中继到目的地的邮件也必须具有相同的“example.com”签名:标题。
答案1
您在 GMail 中看到的是 DKIM 和 SPF 验证的组合。SPF 相对简单,是一个 DNS 记录,指定哪些邮件服务器被指定从您的域发送邮件。我相信这就是 Gmail 呈现“mailed-by”标签的方式。DKIM 稍微复杂一些,因为您将以加密方式签名外发邮件,主要使用 Postfix 过滤器。还有一个 DNS 条目,用于发布 DKIM 公钥。DKIM 验证在 GMail 中显示为“signed-by”标签。
看一眼这里有关“signed-by”和“mailed-by”标签的官方文档。
对于 DKIM 入门,以下是维基页面。您使用的是 CentOS,但Ubuntu 文档关于使用 Postfix 设置 DKIM 的说明相对清晰。您可以更具体地搜索面向 CentOS 的文档。
通常,您将安装 OpenDKIM 包(您需要启用 EPEL 存储库)并对其进行配置(例如,生成密钥对、告诉 OpenDKIM 在签署给定域时使用哪个密钥等)。将有一个opendkim
守护进程监听环回接口上的端口。Postfix 将配置为通过该守护进程作为smtpd_milter
in处理邮件main.cf
。完成后,您将向指定公钥的域的 DNS 添加 TXT 记录。