Sender in Postfix Mailq nachträglich ändern  [SOLVED]

For topics beyond KeyHelp. / Für Themen jenseits von KeyHelp.
Post Reply
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Sender in Postfix Mailq nachträglich ändern

Post by space2place »

Moin zusammen,
ich suche gerade eine einfache Lösung über 1300 Emails, welche in der Postfix Mailq hängen, zu ändern.
Der Admin von dem Server hat den Server leider so eingestellt das die Emails mit dem Absender "www-data@server.tld" versendet werden.
Ich habe schon mit "sender_canonical" gearbeitet das zukünftige Emails nur noch mit dem richtigen Absender versendet werden.

Nun versuche ich krampfhaft die in der Queue liegenden Emails umschreiben zu lassen. Ein "header_checks" mit

Code: Select all

/^From:[[:space:]]+(.*)/ REPLACE From: "Versand" <absender@domain.tld>
und ein Resend der Mailq hat leider nicht geholfen.

Hat einer von Euch noch eine Idee wie man das elegant ändern kann?
Wie man den Empfänger nächträglich ändert weiss ich, aber das geht nur über das extrahieren der Email und neu versenden.

Gruß
Sascha
User avatar
Tobi
Community Moderator
Posts: 2812
Joined: Thu 5. Jan 2017, 13:24

Re: Sender in Postfix Mailq nachträglich ändern

Post by Tobi »

Ich denke dein RegEx scheitert am Zeilenende und nimmt dann den gesamten Rest der Mail und ersetzt ihn. Das geht natürlich schief.

Probier es doch simpler:

Code: Select all


/^www-data@/ REPLACE mailing@

Gruß,
Tobi


-----------------------------
wewoco.de
Das Forum für Reseller, Digital-Agenturen, Bildschirmarbeiter und Mäuseschubser
User avatar
Jolinar
Community Moderator
Posts: 3560
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Sender in Postfix Mailq nachträglich ändern

Post by Jolinar »

space2place wrote: Mon 21. Mar 2022, 11:00 Hat einer von Euch noch eine Idee wie man das elegant ändern kann?
Da die Mails als Textfiles vorliegen, kannst du die doch relativ einfach mit sed umschreiben.
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Sender in Postfix Mailq nachträglich ändern

Post by space2place »

Hi Tobi
ich habe jetzt

Code: Select all

/^www-data@server\.srv1\.domain\.tld/ REPLACE bestellung@domain.tld
in die "header_checks" eingetragen.
Anschließend

Code: Select all

postmap header_checks
und in der main.cf
steht

Code: Select all

smtp_header_checks = regexp:/etc/postfix/header_checks
Nach dem Reload leider keine Änderung.

Gruß
Sascha
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Sender in Postfix Mailq nachträglich ändern

Post by space2place »

Jolinar wrote: Mon 21. Mar 2022, 11:36
space2place wrote: Mon 21. Mar 2022, 11:00 Hat einer von Euch noch eine Idee wie man das elegant ändern kann?
Da die Mails als Textfiles vorliegen, kannst du die doch relativ einfach mit sed umschreiben.
Das wäre jetzt auch ein Ansatz.. Unter "/var/spool/postfix/deferred/" gibt es noch mehrere Unterverezcihnisse.. Aber mit SED sollte das gut funktionieren.. Muss mir mal was zusammenbauen.. Danke für den Denkanstoss
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Sender in Postfix Mailq nachträglich ändern

Post by space2place »

Das wäre jetzt mein Ansatz

Code: Select all

find /var/spool/postfix/deferred/ -type f -exec sed -i -e 's/www-data@server.srv1.domain.tld/bestellung@domain.tld/g' {} \;
Mit einer EMail habe ich das mal gesetzt...
Nur bekommt die in der Mailq jetzt beim Absender ein "M" hinten dran

Code: Select all

4B0DB8438     17675 Sun Mar 20 19:49:34  bestellung@domain.tldM
Hat eine eine Idee wie ich das unterbinden kann?
User avatar
Jolinar
Community Moderator
Posts: 3560
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Sender in Postfix Mailq nachträglich ändern

Post by Jolinar »

Wofür setzt du den Parameter "-e" im sed Kommando?
Sollte normalerweise mit dieser Syntax funktionieren:

Code: Select all

$ find /<Pfad>/<Dateien> -type f -exec sed -i 's/<alter Begriff>/<neuer Begriff>/g' {} \;
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Sender in Postfix Mailq nachträglich ändern

Post by space2place »

Jolinar wrote: Mon 21. Mar 2022, 12:26 Wofür setzt du den Parameter "-e" im sed Kommando?
Gute Frage.. Keine Ahnung warum ich das genutzt habe.. Ja es funktioniert, nur das nach der Änderung immer dieses "M" hinter der neuen Emailadresse steht.
User avatar
Jolinar
Community Moderator
Posts: 3560
Joined: Sat 30. Jan 2016, 07:11
Location: Weimar (Thüringen)
Contact:

Re: Sender in Postfix Mailq nachträglich ändern

Post by Jolinar »

space2place wrote: Mon 21. Mar 2022, 11:48 Danke für den Denkanstoss
Da war ich wohl doch voreilig.
Habs grad mal auf meiner Testinstanz nachgestellt...Hab zum Ersetzen eine längere Adresse genommen, die wurde einfach abgeschnitten. Bei kürzeren Adressen erscheinen auch zufällige Zeichen bei mir.
Ich vermute mal, daß es daran liegt, daß die in der Queue gespeicherten Mails doch keine reinen Textfiles sind und nicht darstellbare Zeichen enthalten.

Edit:
Schau mal hier:
https://serverfault.com/questions/62321 ... d-messages
Last edited by Jolinar on Mon 21. Mar 2022, 14:00, edited 1 time in total.
Reason: Edit
Wenn jemand inkompetent ist, dann kann er nicht wissen, daß er inkompetent ist. (David Dunning)

Data Collector für Community Support
___
Ich verwende zwei verschiedene Schriftfarben in meinen Beiträgen /
I use two different font colors in my posts:
  • In dieser Farbe schreibe ich als Moderator und gebe moderative Hinweise oder begründe moderative Eingriffe /
    In this color, I write as a moderator and provide moderative guidance or justify moderative interventions
  • In dieser Farbe schreibe ich als Community Mitglied und teile meine private Meinung und persönlichen Ansichten mit /
    In this color, I write as a community member and share my personal opinions and views
User avatar
space2place
Posts: 486
Joined: Tue 24. Mar 2020, 11:02
Contact:

Re: Sender in Postfix Mailq nachträglich ändern  [SOLVED]

Post by space2place »

Jolinar wrote: Mon 21. Mar 2022, 13:35 Edit:
Schau mal hier:
https://serverfault.com/questions/62321 ... d-messages
Das liest sich sehr gut.. Danke für die Unterstützung.

Edit: hier nun die Lösung
vi /etc/postfix/generic
Inhalt:

Code: Select all

www-data@server.srv1.domain.tld bestellung@domain.tld
vi /etc/postfix/sender_canonical
Inhalt:

Code: Select all

www-data@server.srv1.domain.tld bestellung@domain.tld
Dann folgendes ausführen:

Code: Select all

postmap /etc/postfix/generic
postmap /etc/postfix/sender_canonical
In die main.cf einfügen:

Code: Select all

sender_canonical_maps=hash:/etc/postfix/sender_canonical
smtp_generic_maps = hash:/etc/postfix/generic
Postfix reloaden und als letztes die Emails noch einmal anstarten:

Code: Select all

postsuper -r ALL deferred
Jetzt ist der Absender überall richtig.
Post Reply