Postfix: cambia il mittente in messaggi in coda

Dopo una completa reinstallazione abbiamo avuto un problema con la configuration: l'indirizzo del mittente era sbagliato e alcuni destinatari (server di posta elettronica) li hanno rifiutati.

Quindi c'è un mazzo di messaggi bloccati nella coda di Postfix.

Idealmente, una modifica dell'indirizzo del mittente direttamente nelle mail in coda e quindi la sciacquatura della coda sarebbe ottimale.

Ho provato questa risposta che affronta questo problema. Ma i messaggi non sembrano essere facilmente modificabili nella versione che ho (2.11.0).

Ad esempio non esiste un /var/spool/mqueue dir, ma, invece, /var/spool/postfix/...

 active bounce corrupt defer deferred dev etc flush hold incoming lib maildrop pid private public saved trace usr 

e il titolo di interesse è deferred . Ho cercato di modificare alcuni file che cambiano il dominio sbagliato con quello corretto (e sono stati attenti a garantire che solo quelli sono stati modificati).

Ma poi, queste mail sono state spostate a corrupt , il che significa che un semplice cambiamento di text non sembra funzionare (fatto con vi ).

Qualsiasi altro modo più pulito per cambiare il mittente in posta in coda?

  • Come reiniziare la posta in scansione nella coda usando sendmail
  • Il metodo di rimozione di Postfix + sasl striscia il nome di dominio dall'utente
  • Server relè Postfix SMTP
  • Postfix (SASL) / MySQL: utilizza la crittografia MD5?
  • postfwd non tariffa limitando gli utenti sasl
  • Impostare un server Postfix su Ubuntu per l'utilizzo con Apple Mail (o qualsiasi client di posta)
  • I valori di configuration del server Postfix sono stati spiegati?
  • Server di posta per server di Windows
  • One Solution collect form web for “Postfix: cambia il mittente in messaggi in coda”

    Ho provato questa answe che affronta questo molto problema. Ma i messaggi non sembrano essere facilmente modificabili nella versione che ho (2.11.0).

    Ad esempio non esiste un command / var / spool / mqueue dir, ma, invece, / var / spool / postfix / …

    Voglio chiarire due cose.

    • In primo luogo, questa risposta è stata applicata a sendmail NON postfix.
    • In secondo luogo, file di manipolazione diretta-coda di origine non erano affatto supportti.

    Quindi, hai diverse opzioni qui

    1. parametro smtp_generic_maps

    Questa risposta è ispirata a questa eccellente risposta . Scriverà automaticamente il vecchio indirizzo al nuovo indirizzo. È ansible definire il file per mappare il vecchio indirizzo al nuovo indirizzo.

     /etc/postfix/main.cf: smtp_generic_maps = hash:/etc/postfix/generic /etc/postfix/generic: account@localdomain.example.com account@example.com 

    Non dimenticare di postmap /etc/postfix/generic e di eseguire il postfix reload

    • Upside: Non è necessario richiedere il messaggio
    • Disagio: Postfix riscriverà l' indirizzo del mittente e del destinatario che corrisponde account@localdomain.example.com .

    2. indirizzo_modulatore_modernario

    Per superare il downside della prima opzione, è ansible utilizzare sender_canonical_maps . Questa soluzione basata su suggerimenti di autore di Postfix . Come la prima opzione, è ansible definire il file per mappare il vecchio indirizzo al nuovo indirizzo.

     /etc/postfix/main.cf: sender_canonical_maps = hash:/etc/postfix/sender_canonical /etc/postfix/sender_canonical: account@localdomain.example.com account@example.com 

    Esegui postmap /etc/postfix/sender_canonical quindi esegue il postfix reload . A causa del stream di coda di postfix, è necessario ripetere la coda interessata con i comandi postsuper -r queueid

    • Upside: Postfix non riscriva l'indirizzo del destinatario.
    • Disagio : devi richiedere tutti i messaggi interessati. Ma è ansible richiedere tutti i differiti con singoli comandi postsuper -r ALL deferred

    3. manipolazione diretta della coda di postfix

    Si tratta di vecchi methods manuali per modificare la coda per l'elaborazione avanzata. Questa risposta è venuta dagli elenchi di mailing di utenti postfix

    In breve

    • Estrarre la coda

       # postsuper -h queueid # postcat -qbh queueid > tempfile.eml # vi tempfile.eml 
    • Riavviare la coda ed eliminare la vecchia coda

       # sendmail -f $sender $recipient < tempfile.eml # postsuper -d queueid 

    Per la documentazione di questo command, fare riferimento a questa pagina

    Nota:
    Soluzione originale da mailing list degli utenti postfix , utilizzare postcat -q queueid >tempfile per estrarre la coda. Questo command estrae l'intestazione, il corpo e le meta-informazioni della coda. Come puntato Azendale qui di seguito , sendmail rifiuterà di submit questa email malformata a causa delle meta-informazioni.

    L' -bh parametri -bh oltre a parametro q farà che il postcat filtri l'output solo per l'intestazione e il corpo, non includendo le informazioni meta. Un vantaggio secondario di questo è che il tempfile è nel formato più i client di posta elettronica riconoscono come formato .eml, consentendo di visualizzare il messaggio risultante (modificato).

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.