Ho provato questa risposta che risolve proprio questo problema. Ma i messaggi non sembrano essere facilmente modificabili nella versione che ho (2.11.0).
Per esempio non c'è dir / var / spool / mqueue dir, ma, invece, / var / spool / postfix / ...
Voglio chiarire due cose.
- Innanzitutto, quella risposta è stata applicata a sendmail NON postfix.
- In secondo luogo, i file di manipolazione diretta di file di coda non erano affatto supportati.
Quindi, hai diverse opzioni qui
1. parametro smtp_generic_maps
Questa risposta si ispira a questa risposta eccellente . Riscriverà automaticamente il vecchio indirizzo al nuovo indirizzo. È possibile 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
correrepostfix reload
- Upside: non è necessario riprogrammare il messaggio
- Unico inconveniente: Postfix riscriverà l' indirizzo del mittente e del destinatario corrispondente
account@localdomain.example.com
.
2. indirizzo_mittente_canonico
Per superare il rovescio della medaglia della prima opzione, è possibile utilizzare sender_canonical_maps
. Questa soluzione si basa sul suggerimento dell'autore Postfix . Come per la prima opzione, puoi 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 corri postfix reload
. A causa del flusso della coda postfix, è necessario ricodificare la coda interessata con il comandopostsuper -r queueid
- Upside: Postfix non riscrive l'indirizzo del destinatario.
- Unico inconveniente : è necessario rivedere tutto il messaggio interessato. Ma puoi rimettere in coda tutti i rinviati con un singolo comando
postsuper -r ALL deferred
3. manipolazione diretta della coda postfix
Si tratta di vecchi modi manuali per modificare la coda per l'elaborazione avanzata. Questa risposta è arrivata dalle mailing list degli utenti postfix
In breve
Estrai coda
# postsuper -h queueid
# postcat -qbh queueid > tempfile.eml
# vi tempfile.eml
Reinvia la coda ed elimina la vecchia coda
# sendmail -f $sender $recipient < tempfile.eml
# postsuper -d queueid
Per la documentazione del comando precedente, fare riferimento a questa pagina
Nota:
soluzione originale dalle mailing list degli utenti postfix , utilizza postcat -q queueid >tempfile
per estrarre la coda. Questo comando estrarrà l'intestazione, il corpo e le meta-informazioni della coda. Come indicato in seguito Azendale , sendmail
rifiuterà di inviare questa e-mail non valida a causa di meta-informazioni.
L'uso del -bh
parametro oltre al q
parametro farà sì che Postcat filtra l'output solo in header e body, non includendo le meta-informazioni. Un vantaggio di questo è che il tempfile è nel formato che la maggior parte dei client di posta elettronica riconosce come formato .eml, che consente di visualizzare il messaggio (modificato) risultante.
postcat -qbh queueid >tempfile
. (Vantaggio secondario: è in formato .eml quindi.) Se lo avessi appena usato-q
, sembrava non fare nulla quando ho eseguito sendmail. Postfix versione 2.8.4. Qualcuno può confermare questo? In tal caso, modifichiamo questa risposta.