Postfix: E-Mail-Text hinzufügen/ändern

Postfix: E-Mail-Text hinzufügen/ändern

Ich habe einen Postfix-Mailserver für mein lokales Netzwerk eingerichtet, der verwendetStempelals Smarthost. Das funktioniert eigentlich einwandfrei. Aber mein Canon Drucker/Kopierer versendet Mails ohne Mailbody, sondern nur mit Anhang.

Dies führt zu einem Fehler auf der Poststempelseite:ErrorCode: '300', Message: 'Provide either email TextBody or HtmlBody or both.'.

Deshalb möchte ich meinem Postfix eine Regel hinzufügen, um der Mail einen TextBody hinzuzufügen, falls dieser fehlt, bevor sie an den Smarthost weitergeleitet wird. Irgendwelche Ideen?

Antwort1

Ich hatte dasselbe Problem mit Postmark bei einigen E-Mails in einem bestimmten Von/An-Paar. Bei Verwendung eines Postfix-Mailservers habe ich die Haftungsausschlussfunktion in Altermime verwendet, um die Betreffzeile in den Text zu kopieren, und eine „if“-Logik angewendet, sodass Altermime nur ausgeführt wurde, wenn die E-Mail von/an die angegebenen Adressen ging.

Es gibt zahlreiche Artikel zum Einrichten von Altermime, hier ist einer davon: https://www.howtoforge.com/wie-fügt-man-ausgehenden-e-mails-mit-altermime-postfix-auf-debian-squeeze-automatisch-einen-haftungsausschluss-hinzu

Der obige Artikel ist für Debian, funktioniert aber größtenteils auch auf RedHat-Derivaten. Sie müssen das Programm selbst mit dnf (oder yum) und unter Verwendung des EPEL-Repository installieren.

Wenn Sie nur einen statischen Textkörper wünschen (wie bei einem Haftungsausschluss), müssen Sie nichts weiter tun, als vielleicht eine If-Logik anzuwenden, wenn Sie nicht möchten, dass der Text auf jede E-Mail angewendet wird.

Wenn Sie die Betreffzeile in den Textkörper einfügen möchten, besteht der Trick darin, die Betreffzeile in eine temporäre Datei auszugeben und diese Datei dann als Haftungsausschlussdatei im Skript zu verwenden.

So was:

Erfassen Sie die Betreffzeile und geben Sie sie in eine temporäre Datei aus:

subject=`grep -m 1 "Subject:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1 | cut -d " " -f 2-`
echo -e "\r\n$subject\r\n" >sub.$$

Wenn das Skript dann einen Dateinamen benötigt, verwenden Sie einfach sub.$$, z. B.

/usr/bin/altermime --input=in.$$ \
                   --disclaimer=sub.$$ \
                   --disclaimer-html=sub.$$ \
                   --xheader="X-SpecialContent-Header: TextAdded" || \
                     { echo Message content rejected; exit $EX_UNAVAILABLE; }

Vergessen Sie nicht, die temporäre Datei zu entfernen. Am Anfang des Skripts befindet sich eine Zeile, die die Eingabedatei entfernt. Erweitern Sie diese Zeile einfach, um die Datei sub.$$ zu entfernen:

trap "rm -f in.$$ sub.$$" 0 1 2 3 15

verwandte Informationen