AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 488265
Accepted
Matthias
Matthias
Asked: 2013-03-16 10:53:27 +0800 CST2013-03-16 10:53:27 +0800 CST 2013-03-16 10:53:27 +0800 CST

postfix + opendkim:“发件人:”和“消息 ID”字段未包含在签名中

  • 772

我运行了 postfix 和 opendkim。postfix 通过 unix 套接字与 opendkim 通信。只要我不在 opendkim 应该签名的字段列表中添加一些特殊的邮件头字段,所有这一切都有效。

后缀配置:

主.cf:

...
smtpd_milters = unix:/var/spool/postfix/milter/opendkim

non_smtpd_milters = unix:/var/spool/postfix/milter/opendkim
...

在我的 opendkim.conf 中我有这个条目:

...
AlwaysSignHeaders      To,Subject,MIME-Version,Content-Type,Sender,From,Message-Id,Date,Reply-To,List-Unsubscribe
...

如果我用这样的 postfix sendmail 命令发送电子邮件

sendmail -f [email protected] -i -t <<EOF
From: [email protected]
Sender: [email protected]
To: [email protected]
Subject: Test

Test
EOF

Gmail 会通知我:

dkim=hardfail

使用

Diagnostics true

opendkim.conf 中的条目它通过“z=...”调试邮件标头条目显示 opendkim 没有在签名中包含“Message-Id”和“Sender”字段,但报告包含

h=From:To:Subject:Date:MIME-Version:Content-Type:Sender:Reply-To:List-Unsubscribe;

邮件标题条目。

深入研究这一点后,我发现当我从 opendkim.conf 的“AlwaysSignHeaders”条目中删除 Message-Id 和 Sender 字段时,Gmail 又高兴了。

因为我使用 sendmail 命令发送邮件,所以我可以确定至少“发件人:”字段必须从一开始就对 postfix 和 opendkim 可用。

因此,如果 opendkim 将使用它获得的所有标头字段,这意味着 postfix 不会为 opendkim 提供所有标头字段。我试图通过为 postfix 的“清理”和“琐碎重写”过程打开详细日志记录来验证这一点,但我不得不承认我在日志中看不到任何有用的信息,尤其是我无法提取信息postfix 向 opendkim 提供了哪些邮件标头字段。如果有人可以使用它,我可以在这里发布这些日志......

我的想法用完了,所以我希望有人能给我一些有用的指示......

postfix
  • 2 2 个回答
  • 8116 Views

2 个回答

  • Voted
  1. Best Answer
    Matthias
    2013-03-18T00:47:31+08:002013-03-18T00:47:31+08:00

    我找到了原因(在 opendkim 邮件列表的好心人的帮助下):

    在我的 opendkim.conf 文件中,我只有这个字段

    AlwaysSignHeaders       From,Sender,To,CC,Subject,Message-Id,Date
    

    指定的。事实证明,您还需要添加 SignHeaders 字段,所以现在的配置如下所示:

    ...
    SignHeaders             From,Sender,To,CC,Subject,Message-Id,Date
    AlwaysSignHeaders       From,Sender,To,CC,Subject,Message-Id,Date
    ...
    

    而已。

    编辑:

    来自 opendkim 的人注意到AlwaysSignHeaders已被弃用,应该改用OversignHeaders 。

    • 9
  2. AnFi
    2013-03-17T04:44:23+08:002013-03-17T04:44:23+08:00

    您是否尝试使用 Message-ID: 和 Sender: 标头对测试消息进行签名?

    您的问题可能是由于 milter在posstfix/MTA 添加上述标头之前获取消息版本引起的(我相信任何好的 MTA 都会修复缺少 Message-Id: 标头)。

    http://www.elandsys.com/resources/sendmail/dkim.html:DKIM使用电子邮件标头和正文生成签名。 如果重写标头或在签名后将文本附加到邮件正文,则 dkim 验证失败。

    PS 恕我直言,opendkim 应该提供选项来生成自己丢失的消息 ID:


    为未来的读者添加:OpenDKIM 提供了调试“标头已更改”问题的选项:KeepTemporaryFiles和TemporaryDirectory

    http://www.opendkim.org/opendkim.conf.5.html

    • 1

相关问题

  • Postfix 在特定端口上接受邮件

  • 让 Postfix 以两种方式处理垃圾邮件

  • Postfix 或 exim:自动/程序化和转发电子邮件设置

  • 后缀电子邮件地址

  • 什么是最好的开源电子邮件解决方案包

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve