Intenté esta respuesta que aborda este mismo problema. Pero los mensajes no parecen ser fácilmente modificables en la versión que tengo (2.11.0).
Por ejemplo, no hay / var / spool / mqueue dir, sino que / var / spool / postfix / ...
Quiero aclarar dos cosas.
- Primero, esa respuesta se aplicó a sendmail NO postfix.
- En segundo lugar, no se admitía en absoluto la manipulación directa de archivos de cola sin procesar.
Entonces, tienes varias opciones aquí
1. parámetro smtp_generic_maps
Esta respuesta inspirada en esta excelente respuesta . Reescribirá la dirección antigua a la nueva dirección automáticamente. Puede definir un archivo para asignar direcciones antiguas a direcciones nuevas.
/etc/postfix/main.cf:
smtp_generic_maps = hash:/etc/postfix/generic
/etc/postfix/generic:
account@localdomain.example.com account@example.com
No te olvides de postmap /etc/postfix/generic
correrpostfix reload
- Al revés: no necesita solicitar el mensaje
- Desventaja: Postfix reescribirá la dirección del remitente y del destinatario que coincida
account@localdomain.example.com
.
2. sender_canonical_address
Para superar la desventaja de la primera opción, puede usar sender_canonical_maps
. Esta solución basada en la sugerencia del autor Postfix . Igual que la primera opción, puede definir un archivo para asignar direcciones antiguas a direcciones nuevas.
/etc/postfix/main.cf:
sender_canonical_maps = hash:/etc/postfix/sender_canonical
/etc/postfix/sender_canonical:
account@localdomain.example.com account@example.com
Corre postmap /etc/postfix/sender_canonical
luego corre postfix reload
. Debido al flujo de la cola de postfix, debe volver a poner en cola la cola afectada con el comandopostsuper -r queueid
- Upside: Postfix no reescribe la dirección del destinatario.
- Desventaja: debe solicitar todos los mensajes afectados. Pero puede solicitar todos los diferidos con un solo comando
postsuper -r ALL deferred
3. manipulación directa de la cola de postfix
Estas son formas antiguas manuales de modificar la cola para el procesamiento avanzado. Esta respuesta vino de las listas de correo de usuarios de postfix
En breve
Extraer cola
# postsuper -h queueid
# postcat -qbh queueid > tempfile.eml
# vi tempfile.eml
Vuelva a enviar la cola y elimine la cola anterior
# sendmail -f $sender $recipient < tempfile.eml
# postsuper -d queueid
Para la documentación del comando anterior, consulte esta página
Nota:
Solución original de las listas de correo de usuarios de postfix , use postcat -q queueid >tempfile
para extraer la cola. Este comando extraerá el encabezado, el cuerpo y la metainformación de la cola. Como señaló Azendale a continuación , sendmail
se negará a enviar este correo electrónico con formato incorrecto debido a la metainformación.
El uso del -bh
parámetro además del q
parámetro hará que postcat filtre la salida solo al encabezado y al cuerpo, sin incluir la metainformación. Un beneficio adicional de esto es que el archivo temporal está en el formato que la mayoría de los clientes de correo electrónico reconocen como formato .eml, lo que le permite ver el mensaje resultante (editado).
postcat -qbh queueid >tempfile
. (Beneficio adicional: entonces está en formato .eml.) Si acabo de usar-q
, parecía no hacer nada cuando ejecuté sendmail. Postfix versión 2.8.4. ¿Alguien puede confirmar esto? Si es así, editemos esta respuesta.