DKIM fail aufgrund von Leerzeichen im DKIM Selector

Simon1511

New Member
Oct 13, 2025
8
5
3
Hallo,

ich bin beim aktivieren von DKIM zufällig über diesen kuriosen Fehler gestolpert. Ich habe es schon mit der aktuellsten Version von PMG 8 und auch PMG 9 probiert, habe aber bei beiden das gleiche Problem.

Ich habe DKIM Signing in PMG aktiviert, die Config sieht wie folgt aus. Ob die Signing Domain Source auf Envelope oder Header steht und ob "Sign all Outgoing Mail" an ist oder nicht macht bei meinem Problem keinen Unterschied.
1760363896586.png

Wenn ich nun eine Test-Mail an z.B. MXToolbox schicke, bekomme ich aber einen DKIM fail. Die DKIM-Signatur ist aber definitiv im Header enthalten. Hier ein Auszug aus einer Mail, die von PMG signiert wurde. Der DKIM Selector ist "pmg":

1760364051249.png

Das gleiche Problem tritt mit allen meinen Domains auf, wenn PMG diese signiert. Wenn ich DKIM signing stattdessen auf dem Mailserver direkt aktiviere und in PMG deaktiviere (die Mails werden weiterhin durch PMG versendet) werden die Mails korrekt signiert und sind auch "valid".

So wie ich das sehe scheint das Problem bei PMG zu sein, dass ein Leerzeichen in den DKIM-Selector hinzugefügt wird. MxToolBox sagt hier, dass die Signatur "dkim:meinedomain.de: pmg" (Leerzeichen!) nicht valide ist.
1760364225036.png
In PMG habe ich doppelt und dreifach geprüft, ob nicht irgendwo ein Leerzeichen drinsteckt, aber weder in der GUI noch in /etc/pmg/pmg.conf ist hier ein Leerzeichen zu finden. Einfach einen anderen Selector anzulegen hat das Problem übrigens auch nicht gelöst.

Meine Domain habe ich bei Cloudflare. Der öffentliche DNS-Eintrag ist auch definitiv korrekt (mit dem DKIM Selector des Mailservers klappt es ja auch):

1760364329010.png

Ich gehe stark davon aus dass es am Leerzeichen im Selector liegt. Hat jemand eine Ahnung, warum das passiert und wie man das beheben kann?
 
Last edited:
  • Like
Reactions: Bob.Dig
So wie ich das sehe scheint das Problem bei PMG zu sein, dass ein Leerzeichen in den DKIM-Selector hinzugefügt wird.
Ich sehe das Leerzeichen jetzt in den screenshots nicht- wird das von MXToolbox so reported, wenn eine Mail hingeschickt wird? oder ist das der DKIM lookup und dort wird domain und selector reingepasted? (dann würde ich nochmal sicherstellen, dass beim pasten nicht das Leerzeichen dazukommt...)

Im Prinzip funktioniert DKIM-Signing mit PMG - sonst hätten wir einiges mehr an reports, dass es Probleme gibt - potentiell ist das format in dem der public DNS-record angezeigt wird etwas schwierig in alle DNS-provider einzutragen (manche wollen ihn aufgesplittet, manche verlangen einen string - und haben Probleme die Anführungszeichen selbst zu entfernen ...) - laesst sich alles nur debuggen wenn die domain und der selector bekannt sind.

Bitte lieber text-sachen in Code-tags pasten anstatt als Bilder.
 
  • Like
Reactions: Simon1511
wird das von MXToolbox so reported, wenn eine Mail hingeschickt wird?
Ja genau, das ist das Resultat wenn ich eine Mail an MxToolBox sende.

Wenn ich bspw. an meine Gmail Adresse sende und dann die Header analysieren lasse komme ich aber aufs gleiche Resultat. Hier sieht man auch das Leerzeichen (sorry, hatte vorher wohl den falschen Screenshot erwischt^^).

Das ist die DKIM-Signatur die an der Mail hängt:

Code:
v=1; a=rsa-sha256; c=relaxed/relaxed; d=meinedomain.de; h= cc:content-transfer-encoding:content-type:content-type:date:from :from:message-id:mime-version:reply-to:subject:subject:to:to; s= pmg; bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=; b=e3Y8CTKa M6CNQIf6DdxM2C7T2u5q+3xOgrJ5DWyZaJp0PiyO7kbmr81YP4AsSf6FVbeKdzCB YjGzmn3oS5n1fXakLFH+NcetJxiMTzD7ekXCiTPYP3OYSlrzExyIDR+1tiObMNuE GWKpJjhx0+uaW+SdDRy0HpUW3DuYJ01FzxE2kH1d3SnseclGxAsOh1/MQF7cUUUr lj/UGrwgYEk31oB2YpaXr8c+F5Wk8ytlYPiAfuw/nhQ67VMQS1eullwNNhKUhDKc agLU1jxpMmtrqh1hzJE3hRb4CdMuCqtFFMFGv29T+X+hPnkXZIWLQmu3c14eYPHk /zSVJbO3ku3fQQ==

Im Prinzip funktioniert DKIM-Signing mit PMG - sonst hätten wir einiges mehr an reports, dass es Probleme gibt - potentiell ist das format in dem der public DNS-record angezeigt wird etwas schwierig in alle DNS-provider einzutragen (manche wollen ihn aufgesplittet, manche verlangen einen string - und haben Probleme die Anführungszeichen selbst zu entfernen ...) - laesst sich alles nur debuggen wenn die domain und der selector bekannt sind.
Ja, ich meine mich auch zu erinnern das ganze vor einiger Zeit schonmal aktiviert zu haben und da hatte es auch funktioniert. Bzgl. DNS: Bei Cloudflare ist das tendenziell egal soweit ich das beurteilen kann - sowohl mit Anführungszeichen als auch ohne klappt es. Cloudflare formatiert den Eintrag sowieso automatisch selber um. Ich habe es sowohl mit den Anführungszeichen von PMG als auch ohne probiert, daran lag es aber leider nicht.
 
  • Like
Reactions: Bob.Dig
Kurzer Nachtrag. Ich weiß nicht was sich geändert hat, aber jetzt ist das Leerzeichen bei einer meiner Domains im Domain-part (d=):

Code:
v=1; a=rsa-sha256; c=relaxed/relaxed; d= meinedomainnummer2.de; h=cc:date:from:from:mime-version:reply-to :subject:subject:to:to; s=pmg; bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5 NMpJWZG3hSuFU=; b=QZgPJxe3IoXQRRTITGg/hnafVXPKJY7pAdc7J6Uc+ocrrh RiJpsLVkUpyqWkyb9PkLKq96TbuhBG8aORq7XhsaadBAWw6fsTnqwN8r2gsDGOBc yrdCMDGJeMXpfIXgQY9Z6SxeFLPP0xXpXAFUYMjVknBwS+/HhW665DHc8JfhXERv 73w9yoB3Wr1Bi/kxPXt757YBX6+rFPkr+4A/oeSAoCWoAZGnP5ly6htpq6FsjCZn pjqqOL7rkZ5hmJ3DOlOLiNAmcOdHe8Uz6E/CD4FAeDxYYVQUKurAPyL44MjSraZ3 5R1/PE67VcP0/ZliSdfo4RJWKWphlcQx/J8ZjrYw==

Bei einer der anderen Domains sieht es jetzt wie folgt aus:
Code:
v=1; a=rsa-sha256; c=relaxed/relaxed; d=meinedomain.de; h= cc:date:from:from:mime-version:reply-to:subject:subject:to:to; s=pmg; bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=; b=SWyBJ 2hWrdO+80tJzZSkpMWgqhe0coM01EpB6r/GaD0x8agAN1YkLm1pvgjd+O2uQivV7 Q+jpxIjnu6XesULBT7qqQB53yFyUx0YyeMZH+DGj0lMQGliDsKF2TKe6IvsZsnbw cfUwuX79K+Y8hlegYQbFKTTa1slrVhwHys1feQXuIafaUnV9dbsgwCJi8FxMUqQA 6GuJEo6BTpw11LoA3oEbNFXy0zVSKGeWDy+XyqbmEjTbLtNFlxSpLdrngJp0ZKZ2 +tpamPrS5kektjbBTHMRHbbrtdI2/wm8z9N91UUqi/MynR/aOSzyN09tzV8VsdlJ ndmW+hbqGVwCZNDFw==

Wie zu sehen stimmt hier zwar der Selector (ohne Leerzeichen), aber hier wird das Leerzeichen stattdessen in den Domain-Part geschoben.

Einen DKIM Pass bekomme ich damit aber trotzdem nicht zustande.
 
Last edited:
  • Like
Reactions: Bob.Dig
hm - Wie werden die mails nach dem PMG weitergeleitet - geht das direkt ins internet - oder ist da noch eine content-inspecting firewall oder sonst ein filter dazwischen?
 
hm - Wie werden die mails nach dem PMG weitergeleitet - geht das direkt ins internet - oder ist da noch eine content-inspecting firewall oder sonst ein filter dazwischen?
Nein, da ist keine Firewall und auch kein Filter zwischen (abgesehen von meiner FritzBox, aber die würde ich jetzt nicht unbedingt als Firewall zählen).

PMG leitet die Mails auch nochmal über einen Trusted Smarthost weiter, also Mailserver -> PMG -> Smarthost (Internet) -> Internet.

Daran wird es denke ich aber eher nicht liegen. Wenn ich eine Mail direkt vom PMG zu meinem Mailserver sende passiert genau das gleiche Phänomen in Hinsicht auf DKIM.
 
  • Like
Reactions: Bob.Dig
Habe das selbe Problem mit MX-Toolbox, PMG9 und Cloudflare. Mit PMG8 hatte ich dieses noch nicht. Mail-tester.com bescheinigt dagegen kein Problem und auch gmail sagt, valide. Bin aber absolut kein Fachmann.
Es hat seit Jahren mit MX-Toolbox gut funktioniert. Ich würde daher auf ein "Problem" mit PMG9 tippen, welches ich zuvor komplett neu aufgesetzt hatte. Streng genommen kann ich MX-Toolbox aber auch nicht ausschließen. Auch ob es an einem Leerzeichen hängt, kann ich nicht sagen, nur dass ich den Email Deliverability Test nun im Punkt DKIM faile.

Wäre schön, wenn ich auch damit wieder grün würde. Nutze das PMG nur für meine wenige private E-Mail. E-Mail-Server dahinter ist poste.io free und E-Mail wird in Thunderbird geschrieben.
 
Last edited:
  • Like
Reactions: Simon1511
Hab mir mal mit einem fremden (Web-)E-Mail-Account, der den Test bei MX-Toolbox besteht, ebenfalls eine E-Mail an google gesendet und anschließend die Header verglichen. Tatsächlich ist dort kein Leerzeichen, bei der vom PMG schon.... Also ich würde @Simon1511 zustimmen. Ein Leerzeichen gehört dort nicht hin.
Code:
s= pmg
H= hat im Vergleich auch deutlich mehr Inhalt beim PMG als beim Vergleichsobjekt.
PMG 9.0.1 (offizieller LXC) ist das letzte Glied in der Kette und versendet die E-Mails (dkim -> Envelope). Antivirus in PMG ist abgeschaltet (masked).
 
Last edited:
  • Like
Reactions: Simon1511
Bitte mal die header einer solchen mail (oder die gesamte Mail) teilen - und auch domain darin lassen - damit wir das hier nachvollziehen können.
(post kann auch gleich danach gelöscht werden).
 
  • Like
Reactions: Bob.Dig
Danke!! - aber in dem Fall hat die mail ja laut google-mx eine gueltige DKIM signature:
Code:
ARC-Authentication-Results: i=1; mx.google.com;...dkim=pass header.i=XXXX header.s=xxx ....
spf=pass (google.com: domain of.....  as permitted sender)XXXX;

Deswegen (und weil sonst doch ein paar mehr reports hier waeren) glaube ich nicht, dass es ein allgemeines Problem mit PMG 9.0 beim DKIM signen gibt..
 
dass es ein allgemeines Problem mit PMG 9.0 beim DKIM signen gibt.
Schrieb ich ja bereits, es besteht den dkim Test bei gmail, aber halt nicht bei mx-toolbox, wegen dem Leerzeichen, das da nicht hingehört. Und wer weiß, wie es sich mit Prüfungen beliebiger anderer Software verhält. Scheint mir (als Laie) zu riskant zu sein.
 
Last edited:
Danke!! - aber in dem Fall hat die mail ja laut google-mx eine gueltige DKIM signature:
Code:
ARC-Authentication-Results: i=1; mx.google.com;...dkim=pass header.i=XXXX header.s=xxx ....
spf=pass (google.com: domain of.....  as permitted sender)XXXX;

Deswegen (und weil sonst doch ein paar mehr reports hier waeren) glaube ich nicht, dass es ein allgemeines Problem mit PMG 9.0 beim DKIM signen gibt..
Moment mal.

Hier mal ein Auszug aus einer Mail von mir, die DKIM lt. MxToolBox nicht besteht.

Code:
i=1; mx.google.com; dkim=pass header.i=@domain.de header.s=pmg header.b="akA/+w8c"; spf=pass (google.com: domain of me@domain.de designates 194.25.134.19 as permitted sender) smtp.mailfrom=me@domain.de; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=domain.de

Die sagt hier auch "dkim=pass". Hier habe ich an Google gesendet und danach die Header durch den MxToolBox Header Analyzer gejagt.

Testweise habe ich den gleichen Header mal durch einen zweiten Header Analyzer (emailheaderanalyzer.com) auswerten lassen und auch noch learndmarc.com. LearnDMARC sagt "OK". Der EmailheaderAnalyzer gibt mir zwar keine direkt Aussage über DKIM Pass/Fail, aber zeigt mir, dass er definitiv die DKIM-Signatur nicht "erkennen" konnte und hat diese beim Leerzeichen abgehackt:

1761153769955.png

Es muss meiner Ansicht nach definitiv an PMG liegen. Ich vermute dass manche Mailserver o.ä. das Leerzeichen einfach nicht vertragen und daher die Signatur nicht verifizieren können.

Falls niemand weiteres eine Idee hat werde ich meinen PMG wohl am Wochenende mal neuinstallieren und schauen ob sich was ändert. Anders als mein Vorredner habe ich das Problem ja sowohl mit PMG 8 als auch 9.
 
Anders als mein Vorredner habe ich das Problem ja sowohl mit PMG 8 als auch 9
Vielleicht ist das Problem erst mit einem der letzten Updates gekommen? Ich teste natürlich nicht allzu oft gegen irgendwelche Test-Sites. Deswegen ist es mir beim 8er vielleicht nicht mehr aufgefallen und dann beim 9er dafür sofort.
 
  • Like
Reactions: Simon1511
Vielleicht ist das Problem erst mit einem der letzten Updates gekommen? Ich teste natürlich nicht allzu oft gegen irgendwelche Test-Sites. Deswegen ist es mir beim 8er vielleicht nicht mehr aufgefallen und dann beim 9er dafür sofort.
Ja, mir ist es auch erst nach dem Upgrade auf 9 aufgefallen. Habe dann mein Backup vom 8er wiederhergestellt und musste leider feststellen, dass das Problem da auch besteht. Ich meine mich auch zu erinnern, dass es vor ein paar Monaten alles ohne Probleme geklappt hat.
 
  • Like
Reactions: Bob.Dig
Okay, ich war ungeduldig und habe jetzt mal einen frischen PMG 9 installiert und mit minimaler Config getestet. Ich habe extra alle Schritte festgehalten. Sagt mir gerne, falls ich hier irgendetwas falsch mache:

  1. PMG 9 LXC heruntergeladen (Proxmox VE), LXC erstellt und hochgefahren
  2. In der GUI eingeloggt
  3. Unter Configuration die Zeitzone gesetzt
  4. Unter COnfiguration -> Mail Proxy:
    1. Relaying:
      1. Default relay auf meinen Mailserver gesetzt (mail-intern.beispiel.de, wird auf eine lokale IP aufgelöst)
      2. Disable MX Lookup: Yes
      3. Smarthost: auf securesmtprelay.t-online.de:25 gesetzt (ich nutze die Telekom als Relay)
    2. Relay Domains:
      1. Meine eigene Domain (beispiel.de) hinzugefügt
    3. Transports:
      1. Relay Domain: beispiel.de
      2. Host: mail-intern.beispiel.de
      3. Use MX: No
    4. Networks:
      1. Jeweils alle internen Netzwerke als CIDR sowie die IP des Mailservers hinzugefügt
    5. TLS:
      1. Enable TLS: Yes
      2. Enable TLS logging: Yes
      3. TLS Destination Policy:
        1. mail-intern.beispiel.de: may
        2. securesmtprelay.t-online.de: encrypt
    6. DKIM:
      1. Enable: Yes
      2. Selector: pmg
      3. Sign Domains:
        1. beispiel.de
      4. Öffentlichen DNS-Eintrag angepasst (pmg._domainkey.beispiel.de)
    7. Welcomelist:
      1. Jeweils meine Domains und Netzwerke als Sender gewhitelistet

Weiter via CLI:

  1. Das Postfix Template von /var/lib/pmg/templates/main.cf.in nach /etc/pmg/templates/ kopiert
    1. Folgende Zeilen hinzugefügt:
      1. smtp_sasl_password_maps=hash:/etc/pmg/relay_passwd
      2. smtp_sasl_auth_enable=yes
      3. smtp_sasl_tls_security_options = noanonymous
    2. Datei "relay_passwd" unter /etc/pmg/ angelegt und mit "securesmtprelay.t-online.de login:asswort" befüllt
    3. Postmap auf relay_passwd ausgeführt
  2. PMG LXC rebootet

Mailversand via PowerShell getestet:

Send-mailMessage -From "Simon1511 <test@beispiel.de>" -SmtpServer 192.168.178.222 -Port 26 -Subject "test" -to meinemail@gmail.com -Body "Test213"

Resultat:

-> Mail landet bei Gmail im Spam-Ordner
-> Header der Mail mittels MxToolBox ausgewertet -> DKIM Fail, wieder Leerzeichen im DKIM Header

1761249982324.png

DKIM-Header:

Code:
v=1; a=rsa-sha256; c=relaxed/relaxed; d=beispiel.de; h= cc:content-transfer-encoding:content-type:content-type:date:from :from:mime-version:reply-to:subject:subject:to:to; s=pmg; bh=8mb YYr+7Rj05hbNU5ej+WUc555CtMCVj/B0hxChSG5E=; b=MZ3KGUFYIuhTvrPIbJk 8nowR+mny0dSCA6p5KgBfYy83t+0aZmIY2u+LLWFRpMka/yNG+kJTcSthYja8v9w ra7PC4/zsLxmdcqDtBbSmHa50Z5nAc/rOSEF+Uw5IGkaEUlANtrCPhIF6pknjn0d Awknd8+GGJsFASnQTQ/WSIhdE2X6M/p5O4ohl4T6H9HC1eklVfrDZzlDO6UCbPfa X5funUDVCd5EjFSDORs2bdQTrWlkl/h95D6T0iqMYDza6pv65bpua1RF9bsa7TyD MZ2X5B9dyXyqGNoHFvXbjcyfAWv2i2BIrcDzNXk8oK2bGxqtkVxz2T3xBm411SLx jIA==

Wenn gewünscht stelle ich auch gerne einmal eine komplette Mail bzw kompletten Header zur Verfügung.

Am Telekom-Smarthost wird es nicht liegen. Wenn ich auf dem Mailserver DKIM aktiviere und den Mailserver an den Smarthost senden lasse ist DKIM = PASS
 
Last edited:
@Simon1511 Es wurde zwar noch kein Fix in Aussicht gestellt, aber ich bin einfach mal vorsichtig optimistisch, dass da noch was kommt. Außerdem, wenn Du es eilig hast, wirst Du um eine Lizenz wohl nicht herumkommen. ;)
 
Last edited:
  • Like
Reactions: Simon1511
@Simon1511 Es wurde zwar noch kein Fix in Aussicht gestellt, aber ich bin einfach mal vorsichtig optimistisch, das da noch was kommt. Außerdem, wenn Du es eilig hast, wirst Du um eine Lizenz wohl nicht herumkommen. ;)
Eilig habe ich es nicht, keine Sorge;)

Tut mir leid falls mein vorheriger Post etwas "gemein" klang, habe mich nur ein wenig geärgert dass der Fehler immernoch besteht.