DKIM问题-dkim = neutral(无键)和其他错误

时间:2018-07-09 10:02:53

标签: gmail phpmailer dkim

我正在尝试将我的PHP DKIM从Sha1升级到Sha256并出现错误。我尝试了很多事情(如下所示),基本上gmail无法通过各种错误(如下所示)对我的签名进行身份验证。我的邮件标题是:

    ARC-Seal: i=1; a=rsa-sha256; t=1531129068; cv=none;
        d=google.com; s=arc-20160816;
        b=AbkKcrsMJTl1UsVer0iTqShaCPEbef/33ABSdCP6FB6BvWeOVnmE4xNIcJjZTXwE8B
         OuwXkIa26k4i8I6NqSSCwnQoa1QENQCnMSFUJX9hxQa774BMmME+1c2AP7h7Jb7ug8Z8
         9EYXQCuJNLs1FnApd8p2gsx/RsC9DQ6Z3M57mrZpIp9N6MsAE9VAGQ/sthz+dkMkJlvT
         V1hEO26gjXPivGe14EFTb0h5q6kkgoWONQXG+gQQVWEzDk8Gq/eT7Ilm9Fzh0V2PNb+n
         n5zB8ZRdiG8fx0i3oPVDPnNG9k3drOJG6dNdwbIhol+fjRhs6u8boLM1ZCFHGl7S2vKp
         3AyQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=date:message-id:mime-version:reply-to:to:from:dkim-signature
         :subject:to:arc-authentication-results;
        bh=MrgLc4ve1ORJFuf0aopHaOcjRXDQ8YmXq9esgbjEKik=;
        b=rG9HE1d3/x5uB5d4PKk9IBG6YoQUltU4GksFoKgw849OU+sM4V5tJ13CuldShH8J9L
         yaOwnZC9W04AhhyzwBCQ3L2H9M4BNWX+ROo7VKakCyxL91aiZMlxB6XwrrK9T4xTJIYk
         OiAB9AzQawP49a/jdKD0rNZAAReOuRvfY/Mo8FzJ0rlAfbyNiu0z1CPLN6BqfE9Hf7n2
         a2QGMMmq+B9Vm5a8pmq7xvFROEpiDe2jUndpfTZB3NoVNYYdk5sBPL698dz+RCFFRhtt
         UnJWPUrFRcVPLbXrZrOMnhpXfaPiRE/P5UGFwahS0XsHpXvx2QHq02DSxe02jPrrWtt+
         957Q==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=neutral (no key) header.i=@mydomain.com header.s=dkimpr header.b=QuXBPFmZ;
       spf=pass (google.com: domain of noreply@mydomain.com designates 110.120.130.140 as permitted sender) smtp.mailfrom=noreply@mydomain.com
Return-Path: <noreply@mydomain.com>
Received: from ess007709 ([110.120.130.140])
        by mx.google.com with ESMTPS id h16-v6si13954889pgb.39.2018.07.09.02.37.47
        for <myemail@gmail.com>
        (version=TLS1_2 cipher=AES128-SHA bits=128/128);
        Mon, 09 Jul 2018 02:37:48 -0700 (PDT)
Received-SPF: pass (google.com: domain of noreply@mydomain.com designates 110.120.130.140 as permitted sender) client-ip=110.120.130.140;
Authentication-Results: mx.google.com;
       dkim=neutral (no key) header.i=@mydomain.com header.s=dkimpr header.b=QuXBPFmZ;
       spf=pass (google.com: domain of noreply@mydomain.com designates 110.120.130.140 as permitted sender) smtp.mailfrom=noreply@mydomain.com
Received: from www-data by ess007709 with local (Exim 4.80) (envelope-from <noreply@mydomain.com>) id 1fcSDJ-0006Ij-CQ; Mon, 09 Jul 2018 02:12:09 -0700
To: myemail@gmail.com
Subject: Welcome to MYWEBSITE
X-PHP-Originating-Script: 1001:test.html
DKIM-Signature: v=1; a=rsa; q=dns/txt; l=586; s=dkimpr; t=1531127529; c=relaxed/simple; h=From:To:Subject; d=mydomain.com; i=infonz@mydomain.com; z=From:=20"mydomain=20App"=20<noreply@mydomain.com> |To:=20myemail@gmail.com |Subject:=20Welcome=20to=20MYWEBSITE; bh=f1SBFzroobq/J+Xp4b+3SEctGQ40Fdi61QLOr3b+Joc=; b=QuXBPFmZGPUazSutggKZHSFxhc7WyIeshmT+Le1i+0n1aYq8B9lDKV9kgw5JdIOBwJvNuyYqHQ0FVDy+gti+FkVujXkzOfrbay4RjZ1Ti0tijJdsWrkSwzlJp9HO9CIbzpo6rcvRG6JoO76lkdhc35lmCfmlCsTfopIvNlHSMK+RoWp87+QIFINyqM0phTT1atSIJQWnMcKSLS54fMqlMjNXEgyN/Q53ZUDM+qIHDCk5eQskP6rGvxsEGIHZK4IgnTqb4uIgNWZNFlNr0f5z7j8PlUSzOLZrGC1r78i9DFrT128z35dOXXA7NV6TaS56jE+/uhLB1f0qfYdjnj4jCw==
From: mydomain App <noreply@mydomain.com>
To: myemail@gmail.com
Reply-To: noreply@mydomain.com
Content-Type: text/html; charset=utf-8
MIME-Version: 1.0

由于我的DNS主机(NameCheap)限制每个TXT DNS记录255个字符,因此发布DNS TXT时确实遇到了一些问题,我这样做是通过发布CNAME而不是指向其他主机并使用TEXT托管TEXT记录来实现的不同的提供者。我认为它可以解决问题,因为当我尝试使用DMARC DKIM分析工具验证TXT记录时,我得到以下确定结果:

  v=DKIM1; k=rsa; g=*; s=email; h=sha256; t=s;
p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2M+BcNJ0iDiEvfEY3oZ33gSpO7sjt
LyiNuyHNjT2KU1QWKaM8mKbYtwXjKqrG1vp4gLAPcbBI2rl2yGsxqJ+ml0ULTHYpjuGF5bMT9jh
/Dt/3bTTps4hbBrZPoaL9f6xDHu6LGEKgnqLEF/z+tpUte56xCFxz/b8zTYLn6srpQBsBTORjzq
8pkmfYGLfVJgw0+zZTZjQL4UXDqd3jmj/go4HCeij1UGoMkgp4zWzzCrJDuWbfPOPikaqZmhZk+
Je5I60pHn6Dlhp3v6awdGTWLb+51L0Y0QieLt3yM62Z4TeVembyUI6sEB+hb7DByK5GbS44sJxu
+AbnUJ4U5dhWwIDAQAB;

我尝试了很多方法来解决我的错误:

  1. 我尝试发送k = rsa-sha256而不是k = rsa,然后出现dkim = fail错误(至少表明DNS记录正在解析?)
  2. 我试图删除l = ...变量(加密主体的长度),并最终出现dkim = neutral(无密钥)错误。
  3. 我尝试了UTF加密而不是base64加密,并且还尝试了不进行二进制打包-均失败。
  4. 我尝试使用TXT记录,并在;之前发布了其他一些版本,例如带或不带转义符。 -得到了相同的结果。
  5. 我试图将标志从“轻松/放松”更改为“轻松/简单”(看到有人声称它可以工作)-没有结果。

有什么线索吗?我将不胜感激!干杯

3 个答案:

答案 0 :(得分:0)

dkim=neutral (no key)在我看来听起来好像接收方无法正确检索和解析您的DKIM记录。这与您对limitation of 255 chars at namecheap的观察一致。我有类似的问题。

最简单的解决方法是生成并使用更短的DKIM密钥来满足此限制。如果我没记错的话,DKIM community offers such generator。否则,您可以尝试使用支持更长TXT记录的其他DNS提供程序。

答案 1 :(得分:0)

您可以使用双引号和一个双引号将较长的DKIM(公共)记录分成多个字符串。

因此:

(“第一部分”“第二部分”“等”)

答案 2 :(得分:0)

好的,所以一年半后,我设法通过重置服务器来解决此问题。问题是我试图使用exim4在php级别用php邮件签名我的电子邮件。如本指南所述,我通过设置postfix server as an outgoing mail server获得了解决方案。这是一本长达12页的详尽指南,但逐步进行会使它正常工作。

使用的堆栈是Linux debian,无论您使用哪个后端邮件(php,python,node.js等),DKIM和SPF都可以工作