【问题标题】:How to Masquerade Sendmail Domain and Make DKIM Use the Correct Domain如何伪装 Sendmail 域并使 DKIM 使用正确的域
【发布时间】:2013-01-14 01:54:03
【问题描述】:

我有一个域,其中包含用于不同站点的十几个子域。每个在 apache 中都有一个单独的虚拟主机。

我将 sendmail 配置为伪装为顶级域,以便电子邮件始终来自顶级域而不是子域。

很遗憾,DKIM 标头 d= 和 i= 字段显示子域。由于 DNS 记录存储在顶级域中,因此 DKIM 检查失败。

我如何告诉 DKIM 使用顶级域?

帮助? - 吉姆

附言我已经尝试了这方面的每一个角度,我很困惑。我不知道 Sendmail 如何告诉 DKIM 使用哪个子域。而且我不知道 PHP 如何告诉 Sendmail 正在使用哪个子域。我尝试在发送邮件之前将 $_SERVER['SERVER_NAME'] 设置为覆盖它,但它没有效果。我想不出一个解决方法。

【问题讨论】:

标签: sendmail dkim


【解决方案1】:

问题源于重写标题及其在此处讨论: https://serverfault.com/questions/442180/sendmail-rewriting-headers-after-opendkim-signature

建议的解决方案之一是在 PHP 中设置正确的标头,以便为 sendmail 提供正确的域信息并且不涉及重写。

就我而言,我意识到这意味着设置 $_SERVER['SERVER_NAME'] 是一种简单的解决方法。我曾提到它对我不起作用,因为我认为 Sendmail 忽略了价值。但我又试了一次,发现 Sendmail 确实识别出来自 $_SERVER['SERVER_NAME'] 的值。我之前没有意识到的问题是我的 DKIM 过滤器配置不正确。

在 dkim-filter.conf 中,我有一行: 域 *.mydomain.com

当 Sendmail 在标头信息中接收“mydomain.com”并调用 DKIM-Milter 时,DKIM 无法找到匹配项,因为“mydomain.com”显然与 *.mydomain.com 不匹配。我将 *.mydomain.com 更改为 mydomain.com,一切都开始工作了。

所以我在所有网站上要做的就是在调用 mail() 或 wp_mail()(对于 WordPress)之前设置 $_SERVER['SERVER_NAME'] = 'mydomain.com'。然后一切正常。

【讨论】:

  • 我如何处理不同的域,例如我的后缀域是 name@domain1.com,我想签署一个 name@domain2.com
猜你喜欢
  • 2010-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多