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:

  • Gli header_check di Postfix non funzionano
  • Solo server in output SMTP
  • Creazione di una connessione TLS attendibile dal client Postfix
  • Dove posso trovare un elenco di tutti i parametri / variables utilizzati in Postfix master.cf?
  • Lista nera di IP falsa su CBL e Spamhaus ZEN
  • Autorizzazioni Postfix / Dovecot su nuovi file in una cassetta postale
  • 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.

  • Dove posso trovare risorse di tuning per postfix, saslauthd e corriere
  • 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.