email - para - postfix: envíe una copia de cada correo electrónico a una dirección de correo electrónico determinada
mailto html5 (2)
Tengo un servidor de correo postfijo y hay un problema que quiero depurar. ¿Cómo puedo configurarlo para enviar una copia de cada correo electrónico a mi correo electrónico (además de entregar el correo electrónico a los destinatarios previstos).
Hace poco lo hice funcionar, así que aunque compartiría:
Enviando todo el correo saliente a las carpetas Enviadas con postfix y cyrus imap.
Resumen
Haga que postfix envíe copias en bcc de todos los correos electrónicos salientes a una cuenta especial de correo "enviado". Use tamiz en esta cuenta especial para redirigir todos los correos electrónicos a la carpeta Enviada asociada con la cuenta.
Crea la cuenta de usuario de correo electrónico para enviar
La forma más sencilla de hacerlo es crear una nueva cuenta de Unix para enviar, estableciendo el shell en / bin / false para evitar que alguien pueda iniciar sesión:
host$ sudo useradd sent host$ sudo chsh -s /bin/false sent
Configurar imap para el usuario enviado
Usando cyradm, creamos un nuevo buzón de correo (es decir, un usuario) y le damos a ese usuario acceso a todas nuestras carpetas imap "Enviadas":
host$ $ cyradm -user cyrus localhost Password: <enter you cyrus user admin password here> localhost> createmailbox user.sent localhost> setaclmailbox user.%.Sent sent append Setting ACL on user.userx.Sent...OK. Setting ACL on user.usery.Sent...OK. . . . Setting ACL on user.userz.Sent...OK. localhost> exit
Crear un script de tamiz para la cuenta enviada
Este script redireccionará todos los correos electrónicos entrantes a la cuenta enviada, a la carpeta Enviados en la Bandeja de entrada del remitente.
Mi script se llama send.sieve y se ve algo como esto:
# Sieve script for sent. If outgoing email is bcc''ed to this account, # this sieve script will redirect it to the sender''s Sent folder require ["fileinto"]; if address :is :localpart "From" "userx" { fileinto "user.userx.Sent"; } elsif address :is :localpart "From" "usery" { fileinto "user.usery.Sent"; } elsif address :is :localpart "From" "userz" { fileinto "user.userz.Sent"; }
Necesitará ingresar una entrada para cada uno de sus usuarios (userx, usery, userz en el ejemplo anterior). No he podido encontrar una mejor manera de hacer esto. Sugerencias bienvenidas a [email protected]
Instale el script de tamiz de la siguiente manera:
host$ sieveshell localhost -user=sent -a=cyrus Password: <enter you cyrus user admin password here> > put sent.sieve > activate sent.sieve > quit
Configure la asignación de bcc para postfix
En el directorio postfix (/ etc / postfix en debian) crea un archivo llamado bcc_map que se ve así:
# copy all locally sent mail to the sent account @yourdomain.com [email protected]
Compila esto en un archivo hash postfix usando:
host$ sudo postmap bcc_map
Agregue la siguiente línea al archivo de configuración de postfix main.cf:
sender_bcc_maps = hash:/etc/postfix/bcc_map
Y haz que postfix vuelva a cargar su configuración:
host $ sudo /etc/init.d/postfix recarga
Prueba y depuración
Envíe un correo electrónico y verifique que esté copiado en su carpeta Enviados.
En caso de problemas, debe consultar los registros de cyrus y postfix (todos registrados en
/var/log/syslog
en mi host de Debian). Typos y permisos de acceso incorrectos generalmente darán lugar a que se envíe alguna pista a los registros.
Simplemente agregue [email protected]
en /etc/postfix/main.cf y reinicie el servidor de postfix. He agregado esta línea en la parte inferior.
Realmente parece estar funcionando. Más acerca de always_bcc aquí
No olvide hacer una copia de seguridad de este archivo primero.