Impostazione del filter Procmail per lo spam su Postfix / Courier + Utenti virtuali MySQL

Ho cercato una risorsa su come farlo, ma non avendo molta fortuna.

Sto eseguendo un MTA / MUA funzionante basato su Postfix e Courier con MySQL come backend per gli utenti virtuali. Ho basato il mio sistema sul seguente articolo:

https://help.ubuntu.com/community/PostfixCompleteVirtualMailSystemHowto

Era fantastico fino alle sezioni vuote! La mia configuration SMTP / IMAP funziona bene e sono riuscito a installare anche SpamAssassin e ClamAV con una documentazione separata che ho trovato in linea.

Quello di cui mi serve aiuto è impostare Postfix per utilizzare Procmail come mailbox_command in modo che funziona con gli utenti virtuali. Voglio essere in grado di definire diverse regole Procmail per ciascun utente virtuale separatamente. Ho letto la documentazione Postfix e, come lo capisco, la funzionalità predefinita per mailbox_command funziona solo per gli utenti locali (non virtuali).

Grazie in anticipo!

AGGIORNARE:

Da questo post, ho capito che la mailbox_command non è tenuta. Invece ho trovato un modo per farlo utilizzando le mappe di trasporto. Leggi la mia risposta qui sotto.

  • Come posso submit la posta mentre salvo una copia utilizzando postfix e mysql?
  • Magento Community - Hosting :: Avere bisogno di una consulenza che condivisione di hosting eseguirà magento veloce
  • 2 Solutions collect form web for “Impostazione del filter Procmail per lo spam su Postfix / Courier + Utenti virtuali MySQL”

    Creare un procmailrc globale e, per each utente, creare una regola come questa:

    :0 ^TOsomeuser@yourdomain.com | /usr/bin/procmail -m /etc/procmailrcs/someuser 

    La solita regola finale di each file in / etc / procmailrcs / deve quindi essere quella di submit il messaggio (8).

    Se si dispone di molti utenti e non vuole mantenere un file di questa natura, si consideri invece di scrivere uno script che analizza le intestazioni di posta per individuare quale file in / etc / procmailrcs / si desidera ed eseguire procmail in modo appropriato e impostare script come mailbox_command.

    Questo articolo è stato di aiuto: http://www.linuxbackups.org/virtual-procmail .

    C'erano due problemi che wherevo superare. In primo luogo, la soluzione richiede che un file statico contenga la mappa utente / trasporto. Ho bisogno di una soluzione virtuale. Quindi, invece di creare / etc / postfix / transport, il mio main.cf dice:

     transport_maps = mysql:/etc/postfix/mysql_virtual_transport_maps.cf 

    Ecco il mio mysql_virtual_transport_maps.cf:

     user = ****** password = ****** hosts = 127.0.0.1 dbname = postfix table = mailbox select_field = transport where_field = username 

    Così risolto il requisito "virtuale". L'altro problema è che la struttura della mia directory è diversa dall'esempio procmailrc.common. Ecco il mio procmailrc.common:

     :0 * RECIPIENT ?? .*@\/.*$ { DOMAIN = "$MATCH" } #added RECIPIENT variable and we extract domain name MAILDIR="$HOME/$DOMAIN/$USER@$DOMAIN" DEFAULT="$MAILDIR/" LOGFILE="./procmail.log" VERBOSE=YES #each user will set his own log file NL=" " WS=" " SWITCHRC="$HOME/$DOMAIN/$USER@$DOMAIN/.procmail" 

    Spero che questo aiuti gli altri che potrebbero cercare di fare qualcosa di simile.

    -aj

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.