2009-04-16 10 views
5

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

+0

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. –

risposta

8

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.

  1. 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 
    
  2. 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 
    
  3. 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 
    
  4. 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

  5. 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 .

2

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.