Ho un server e-mail postfix e c'è un problema che voglio eseguire il debug. Come posso configurarlo per inviare una copia di ogni e-mail alla mia e-mail (oltre a consegnare l'e-mail ai destinatari previsti).postfix: invia una copia di ogni e-mail a un determinato indirizzo e-mail
risposta
Recentemente ho ottenuto questo lavoro, quindi anche se mi piacerebbe condividere:
L'invio di tutta la posta in uscita in cartelle Inviati con Postfix e Cyrus IMAP.
Sommario
Marchio postfix inviare copie BCC di tutte le email in uscita ad uno speciale "inviato" account di posta. Usa il setaccio su questo account speciale per reindirizzare tutte le email nella cartella Inviati associata all'account.
creare l'account utente di posta elettronica per inviare
Il modo più semplice per farlo è quello di creare un nuovo account unix per mandato, impostazione della shell per/bin/false per impedire a chiunque di essere in grado di log in:
host$ sudo useradd sent host$ sudo chsh -s /bin/false sent
Impostare IMAP per l'utente inviato
Usando cyradm creiamo una ne w casella di posta (es utente) e dare quell'utente accodare l'accesso a tutti i nostri imap "Inviati" cartelle:
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
creare uno script vaglio per l'account inviato
Questo script reindirizzare tutte le email in entrata all'account inviato, alla cartella Posta inviata nella posta in arrivo dei mittenti.
Il mio script si chiama sent.sieve e simile a questa:
# 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"; }
Sarà necessario mettere in una voce per ciascuno degli utenti (userx, Usery, UserZ nell'esempio di cui sopra). Non sono stato in grado di trovare un modo migliore per farlo. I suggerimenti sono accolti a [email protected]
Installare il setaccio script come questo:
host$ sieveshell localhost -user=sent -a=cyrus Password: <enter you cyrus user admin password here> > put sent.sieve > activate sent.sieve > quit
Impostare la mappatura bcc per postfix
Nella directory Postfix (/ etc/postfix su debian) creare un file chiamato bcc_map che assomiglia a questo:
# copy all locally sent mail to the sent account @yourdomain.com [email protected]
compilare questo in un hash postfix file utilizzando:
host$ sudo postmap bcc_map
Aggiungere la riga seguente al suffisso principale.file di configurazione CF:
sender_bcc_maps = hash:/etc/postfix/bcc_map
E fa postfix reload sua configurazione:
ospite $ sudo /etc/init.d/postfix ricaricare
Test e debug
inviare alcune e-mail e controlla che sia copiato nella tua cartella di posta inviata.
In caso di problemi, controllare i registri Cyrus e Postfix (tutti registrati su
/var/log/syslog
sul mio host debian). Errori di battitura e errati permessi di accesso di solito causano l'invio di qualche indizio ai registri .
Basta aggiungere [email protected]
in /etc/postfix/main.cf e riavviare il server postfix. Ho aggiunto questa riga in basso.
Sembra davvero funzionare. Ulteriori informazioni su always_bcc here
Si prega di non dimenticare di eseguire il backup di questo file prima.
http://serverfault.com/questions/407302/how-can-i-configure-postfix-to-retain-copies-of-all-email-sent-through-it ha risposta molto meglio in quanto utilizza le caratteristiche fornito da postfix. –