DKIM -> dkim=fail

PHP Newsletter Software/Script und E-Mail-Marketing Software SuperWebMailer

Moderator: mirko

sbschumacher
Beiträge: 18
Registriert: 20.02.2011, 21:14

Re: DKIM -> dkim=fail

Beitrag von sbschumacher »

1.000 Dank!

Das ist die Lösung! Nun läuft es perfekt durch den Check. Klasse!

Danke!
Benutzeravatar
mirko
Beiträge: 22887
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: DKIM -> dkim=fail

Beitrag von mirko »

noch mal zu diesem Thema, ist ein Fehler beim Versand über PHP mail() enthalten, folgendes ändern

Script mail.php Zeile 310

Code: Alles auswählen

'To'    => $this->_OQ6CO($this->To),
ändern in

Code: Alles auswählen

 'To'    => $this->_OQ6CO($this->To, $this->Sendvariant == "mail"),
dann könnte es korrekt sein, muss aber nicht, denn bei einigen PHP-Versionen wird danach To als emai@email.adresse beim Versand verwendet, bei anderen <emai@email.adresse>, dann wäre es wieder falsch, lässt sich aber nicht beheben.
Benutzeravatar
mirko
Beiträge: 22887
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: DKIM -> dkim=fail

Beitrag von mirko »

Betreff und Absender sind nicht verschlüsselt, sondern base64 codiert, das erkennt man an dem B. Man kann Betreff und Absender base64 oder quoted printable kodieren, Vorteil an quoted printable man kann als Mensch den Inhalt lesen bzw. erahnen, bei base64 muss man die Angabe erst dekodieren.

Für die DKIM-Signatur verwendet man verschiedene Einträge aus dem Header der E-Mail, die natürlich nicht verändert werden dürfen. SuperWebMailer verwendet mime-version, from, to, subject und reply-to, falls es reply-to in der E-Mail gibt.

Das Problem beim Versand per PHP mail() ist, das die Header-Einträge möglicherweise verändert werden, aus dem Grund sollte per SMTP versendet werden, dann setzt SuperWebMailer die Header-Felder und die bleiben auch so.
sbschumacher
Beiträge: 18
Registriert: 20.02.2011, 21:14

Re: DKIM -> dkim=fail

Beitrag von sbschumacher »

Hallo Mirko!

Danke für deine ausführliche Antwort.

Verschiedene Tools wie bspw. http://dkimvalidator.com/ kommen immer zu dem Ergebnis, dass sowohl die Test-Email vom SWM als auch "ordentlich" versendete Emails verändert wurden (Validating Signature, result = fail, Details: message has been altered).

Was mir beim Vergleich der Header (SWM vs. "php-mail-signature" (s. erster Post)) aufgefallen ist:
  • Subject: Beim SWM im Klartext, beim anderen Script verschlüsselt (etwa so: =?UTF-8?B?VGVzdGVuIE1TRCBPZmZpY2U=?=)
  • From: auch hier, wie beim Subject verschlüsselt
  • zudem ein Unterschied im Parameter h in der DKIM-Signature: beim SWM heißt es zusätzlich "reply-to". Wahrscheinlich wäre der dann auch beim anderen Script verschlüsselt?
Ich bin mir nicht sicher, ob die Formatierung (Verschlüsselung) von Subject und den Email-Adressen unbedingt erforderlich ist. Falls nicht, wird der Email evtl. nach der DKIM-Signatur noch etwas angefügt?
Benutzeravatar
mirko
Beiträge: 22887
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Re: DKIM -> dkim=fail

Beitrag von mirko »

Die Header-Einträge vergleichen, also von der durchgelassenen E-Mail und von der SuperWebMailer-E-Mail. DKIM sollte man gar nicht verwenden, weil die Header nicht dem Standard entsprechend an den Anfang gesetzt werden können aber das wird von den meisten Anbietern ignoriert, auch Google ignoriert dies.
sbschumacher
Beiträge: 18
Registriert: 20.02.2011, 21:14

DKIM -> dkim=fail

Beitrag von sbschumacher »

Hallo zusammen!

Wir haben unser Mailsystem so umgestellt, dass nur noch DKIM signierte Emails über unsere Domain versendet werden. Beim Superwebmailer konnten wir dies soweit auch einrichten, jedoch erhalten wir immer ein "dkim=fail":

Code: Alles auswählen

Received-SPF: pass (google.com: domain of office@m*******n.com designates 212.227.***.*** as permitted sender) client-ip=212.227.***.***;
Authentication-Results: mx.google.com;
       dkim=fail header.i=@m*******n.com;
       spf=pass (google.com: domain of office@m*******n.com designates 212.227.***.*** as permitted sender) smtp.mailfrom=office@m*******n.com;
       dmarc=pass (p=REJECT dis=NONE) header.from=m*******n.com
Vom gleichen Webserver aus versendete PHP-Emails, die mit "php-mail-signature" (https://github.com/louisameline/php-mail-signature) signiert wurden, erhalten wir jedoch ein "pass". (Gleiche Zertifikate, etc.).

Die Versandvariante SMTP können wir leider nicht verwenden.

Ist hier beim Superwebmailer evtl. ein Bug oder gar ein Fix bekannt?

Vielen lieben Dank im Voraus für die Mühe,
Sebastian
Antworten