Назад | Перейти на главную страницу

в заголовках сообщений указано dkim = fail, в статистике указано = PASSED. почему конфликт и как исправить?

В некоторых (не всех) полученных электронных письмах - особенно ТОЛЬКО тех, которые были отправлены через «массовые» службы - я получаю ошибку DKIM: «Ошибка проверки подписи». Вот один пример:

Received message headers
    DKIM-Filter: OpenDKIM Filter v2.10.3 mail.example.com 3rfbq51KBTz2xF0
    Authentication-Results: dkim.example.com/3rfbq51KBTz2xF0;
        dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=proxyvote.com header.i=@proxyvote.com header.b=XjB07H1q

Но при проверке "dkim-stats" появляется сообщение "ПРОШЛО".

opendkim-stats dkim-stats
    Job 3rfbq51KBTz2xF0 at edge (size 12124)
            received via 127.0.0.1 at Wed Jun 29 01:45:37 2016
            from domain = 'proxyvote.com'
            Signature 1 from proxyvote.com
                    PASSED
                    signed bytes: (whole message)
                    Signature properties: 
                    Key properties:  
                    DNSSEC status: INSECURE

Вот дамп для этого сообщения

cat dkim.3rfbq51KBTz2xF0.4dDfiv
    Date: Wed, 29 Jun 2016 03:10:40 -0400
    From: "PROXYVOTE"  <id@proxyvote.com>
    To:   USER@EXAMPLE.COM
    Subject: Semi-Annual Report
    message-id: <$A94546_1_519687362154ADDC_0154651$495132454@adp-ics.com>
    Reply-To: "PROXYVOTE" <ProxyMaster@proxyvote.com>
    MIME-Version: 1.0
    DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
      d=proxyvote.com; i=@proxyvote.com; q=dns/txt;
      s=edppsuirna01; t=1467189937; x=1498725937;
      h=date:from:to:subject:message-id:reply-to:mime-version;
      bh=H5lkhcTIjxd0B3N4Kdj314qELLpSKZvAAtPAS+XcM1A=;

Почему я получаю как «не пройден», так и «прошел» и что мне нужно сделать, чтобы это исправить?

Джейсон, можно ли изменить c=simple/simple к c=relaxed\relaxed? Я много раз видел, как разные валидаторы DKIM боролись со сворачиванием пробелов. Вы говорите, что это не работает только с "Bulk", так что это говорит мне, что вы отправляете это через какую-то службу SMTP, что заставляет меня больше склоняться к тому, что заголовки переписываются, а сворачивание пробелов простого / простого является виновником. Вы также можете запустить Почтовый тест на нем, который проверит его с 4 различными валидаторами DKIM - если он не работает со всеми четырьмя. Вероятно, это то, что происходит, когда вы отправляете через эту массовую службу.

Обновленный раздел ниже

После получения электронного письма вы все равно можете повторно обработать его и проверить DKIM с помощью другого валидатора. Это то, что я делаю для проверки работоспособности, когда думаю, что мой почтовый сервер может неправильно обрабатывать DKIM. Я использую Limilabs Mail.dll для обработки отправки EML, но вы можете использовать все, что захотите, на любом языке программирования, с которым вы знакомы. DKIM останется нетронутым, и вы сможете проверить его по сравнению с другими валидаторами DKIM, используя онлайн-автоответчики.

    Dim email As IMail
    Dim mb As New Limilabs.Mail.MailBuilder
    Dim smtpMail As SmtpMail = SmtpMail.CreateFromEmlFile("D:\ValidateDKIM\BadDKIM.eml")
    email = mb.CreateFromEml(smtpMail.RawEmlData)

     Using client As New Smtp()
            client.ConnectSSL("mailserver", 465)
            client.Login("mailserver", "password")
            Dim stream As System.Net.Security.SslStream = client.ReadStream()

            Dim reader As IO.StreamReader = New IO.StreamReader(stream)
            client.SendMessage(New SmtpMail("Mail Check", { "mailtest@unlocktheinbox.com","check-auth@verifier.port25.com"}, smtpMail.RawEmlData))
            client.Close()
    End Using