Ich habe genau das gleiche Verhalten in Outlook 2013 und Outlook 2016 gesehen, die beide fälschlicherweise von signierten Milter signierte mehrteilige Nachrichten als manipuliert gemeldet haben. The Bat! v7 Professional (Windows) und Mac Mail (El Capitan) melden die gleichen Meldungen als gültig.
Das Problem wird durch zu viele Wagenrücklauf (CR) oder Zeilenvorschub (LF) oder eine Kombination aus beiden (CRLF) am Ende Ihrer Nachrichtennutzlast verursacht.
Ende Ihrer Nachrichtennutzlast bedeutet das endgültige:
------ = _ NextPart_000_0005_01D0553F.10373AE0--
in der unsignierten / unformatierten Nachricht, die Sie gepostet haben.
Es spielt keine Rolle, welcher Client die Nachricht sendet. Outlook an Outlook schlägt genauso fehl wie Mac Mail an Outlook.
Wenn Sie Windows Live Mail verwenden, kann ich davon ausgehen, dass sich dies auf alle Mail-Clients auswirkt, die das Mail- und / oder Crypto-Backend von Windows verwenden.
Sie können dies sogar zuverlässig reproduzieren, indem Sie eine mehrteilige Nachricht ausschließlich mit Telnet / ncat senden.
Um nur klar zu sein, ich bin fast zu 99% sicher, dass Ihre Mails ordnungsgemäß mit einem gültigen Zertifikat signiert sind. Es ist nur so, dass Microsoft Dinge anders macht.
Jetzt habe ich keine Ahnung, was der Schalter -b intern im Signier-Milter gemacht hat. Ich bin sicher, er hat sichergestellt, dass Ihre Nutzlast vor dem Signieren ordnungsgemäß entkommen ist.
"Hat", einfach weil diese Option in der aktuellen Version (hier läuft die Signing-Milter-Version 20150308) scheinbar aufgegeben wurde und gerade ausgegeben wird
Die Option -b wird aus Kompatibilitätsgründen ignoriert. Sie können sie sicher entfernen
wenn mit diesem Argument ausgeführt, und Mails werden in Outlook natürlich immer noch nicht überprüft.
Die offensichtlichste Problemumgehung scheint also darin zu liegen, die Mails durch einen zusätzlichen Milter zu stoßen, bevor sie an den Signing-Milter gesendet werden.
Da ich bereits einen solchen benutzerdefinierten Milter vor Ort habe (in Python mit libmilter geschrieben), könnte ich einfach meinen Code übernehmen, um mich darum zu kümmern:
... if mail.is_multipart(): logging.debug("Stripping tailing line feeds (if any) from multi-part payload") new_body = new_body.rstrip() workflow["repl_body"] = new_body return workflow
Damit hört Outlook endlich auf, sich über nichts zu beschweren.
Prost