Ich habe diese Antwort ausprobiert, die genau dieses Problem angeht . Aber Nachrichten scheinen in meiner Version (2.11.0) nicht leicht zu ändern zu sein.
Zum Beispiel gibt es kein / var / spool / mqueue-Verzeichnis, sondern / var / spool / postfix / ...
Ich möchte zwei Dinge klarstellen.
- Zunächst wurde diese Antwort auf sendmail NOT postfix angewendet.
- Zweitens wurde das direkte Manipulieren von Raw-Queue-Dateien überhaupt nicht unterstützt.
Sie haben hier also mehrere Möglichkeiten
1. Parameter smtp_generic_maps
Diese Antwort wurde von dieser hervorragenden Antwort inspiriert . Die alte Adresse wird automatisch in eine neue Adresse umgeschrieben. Sie können eine Datei definieren, um die alte Adresse der neuen Adresse zuzuordnen.
/etc/postfix/main.cf:
smtp_generic_maps = hash:/etc/postfix/generic
/etc/postfix/generic:
account@localdomain.example.com account@example.com
Vergiss nicht zu postmap /etc/postfix/generic
rennenpostfix reload
- Oberseite: Sie müssen die Nachricht nicht anfordern
- Nachteil: Postfix schreibt die übereinstimmende Absender- und Empfängeradresse neu
account@localdomain.example.com
.
2. sender_canonical_address
Um den Nachteil der ersten Option zu überwinden, können Sie verwenden sender_canonical_maps
. Diese Lösung basiert auf dem Vorschlag eines Postfix-Autors . Wie bei der ersten Option können Sie eine Datei definieren, um die alte Adresse der neuen Adresse zuzuordnen.
/etc/postfix/main.cf:
sender_canonical_maps = hash:/etc/postfix/sender_canonical
/etc/postfix/sender_canonical:
account@localdomain.example.com account@example.com
Laufen, postmap /etc/postfix/sender_canonical
dann laufen postfix reload
. Aufgrund des Flusses der Postfix-Warteschlange müssen Sie die betroffene Warteschlange mit dem Befehl erneut in die Warteschlange stellenpostsuper -r queueid
- Oberseite: Postfix schreibt Empfängeradresse nicht neu.
- Nachteil: Sie müssen alle betroffenen Nachrichten anfordern. Sie können jedoch alle mit einem einzigen Befehl zurückgestellten Daten anfordern
postsuper -r ALL deferred
3. direkte Manipulation der Postfix-Warteschlange
Dies sind manuelle alte Methoden zum Ändern der Warteschlange für die erweiterte Verarbeitung. Diese Antwort kam von Postfix-Benutzer-Mailinglisten
Zusamenfassend
Warteschlange extrahieren
# postsuper -h queueid
# postcat -qbh queueid > tempfile.eml
# vi tempfile.eml
Warteschlange erneut senden und alte Warteschlange löschen
# sendmail -f $sender $recipient < tempfile.eml
# postsuper -d queueid
Eine Dokumentation des obigen Befehls finden Sie auf dieser Seite
Hinweis:
Ursprüngliche Lösung aus Postfix-Benutzer-Mailinglisten , postcat -q queueid >tempfile
zum Extrahieren der Warteschlange. Dieser Befehl extrahiert den Header, den Body und die Metainformationen der Warteschlange. Wie unten von Azendale erwähnt , sendmail
wird das Senden dieser fehlerhaften E-Mail aufgrund von Metainformationen abgelehnt.
Wenn Sie -bh
zusätzlich zu den q
Parametern einen Parameter verwenden, filtert der Postcat-Filter nur die Ausgabe nach Header und Body, ohne Metainformationen. Ein Nebeneffekt davon ist, dass die temporäre Datei das Format hat, das die meisten E-Mail-Clients als EML-Format erkennen, sodass Sie die resultierende (bearbeitete) Nachricht anzeigen können.
postcat -qbh queueid >tempfile
. (Nebeneffekt: Es ist dann im EML-Format.) Wenn ich es nur benutzte-q
, schien es nichts zu tun, als ich sendmail ausführte. Postfix Version 2.8.4. Kann jemand das bestätigen? Wenn ja, bearbeiten wir diese Antwort.