PostfixAdmin Download e Installazione
Useremo la versione Subversion di Postfix Admin in modo da avere sempre l’ultima versione aggiornata.
Configurazione con Apache
# cd /var/www # svn co https://postfixadmin.svn.sourceforge.net/svnroot/postfixadmin/trunk postfixadmin # cd postfixadmin
PostfixAdmin Config File
- /var/www/html/postfixadmin/config.inc.php
Prima di tutto indichiamo a PostfixAdmin che abbiamo installato e configurato tutto.
$CONF['configured'] = true;
Inseriamo l’indirizzo url completo nel quale si trova Postfix Admin
$CONF['postfix_admin_url'] = 'https://mail.example.com/postfixadmin';
Database Setup
Ora configuriamo la nostra connessione al database. In questo esempio stiamo utilizzando MySQL.
$CONF['database_type'] = 'mysql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix'; $CONF['database_password'] = 'postfix'; $CONF['database_name'] = 'postfix'; $CONF['database_prefix'] = ;
Impostiamo l’email address dell’amministratore del servizio in modo che tutti gli errori arrivino a questa mail.
$CONF['admin_email'] = '[email protected]';
Impostiamo i parametri del nostro server smtp.
$CONF['smtp_server'] = 'localhost'; $CONF['smtp_port'] = '25';
Le password verranno criptate utilizzando il seguente metodo:
$CONF['encrypt'] = 'md5';
Impostiamo la lunghezza minima della password:
$CONF['min_password_length'] = 7;
Inseriamo gli alias che verranno creati di default su tutti i domini.
$CONF['default_aliases'] = array ( 'postmaster' => '[email protected]', );
Mailbox Setup
Se si vuole organizzare l’alberatura sul filesystem in modo da dividere le email per dominio, impostare a ‘YES’ questo campo. (Esempio: /usr/local/virtual/example.com/[email protected]
$CONF['domain_path'] = 'YES';
Se non vuoi avere il @dominio nel path finale della mailbox, sempre nell’alberatura sul filesystem, impostare a ‘NO’ il seguente campo. (Example: /usr/local/virtual/example.com/username al posto di /usr/local/virtual/example.com/[email protected])
$CONF['domain_in_mailbox'] = 'NO';
Valori di default. Specificare i valori di default. La quota è in MB.
$CONF['aliases'] = '0'; $CONF['mailboxes'] = '0'; $CONF['maxquota'] = '512'; (NOTE: Postfix dose NOT understand quota's and will not enforce them)
Transport Setup
Se si vuole definire un diverso transport per i domini di posta che si hanno (esempio: virtual o local), impostare a ‘YES’ la seguente voce.
$CONF['transport'] = 'YES';
Se si vogliono definire ulteriori transport, è possibile inserirli in un’array.
$CONF['transport_options'] = array ( 'virtual', // for virtual accounts 'local', // for system accounts 'relay' // for backup mx );
Transport default
$CONF['transport_default'] = 'virtual';
Virtual Vacation Setup
Se si vuole utilizzare la configurazione del ‘Vacation’ per le mailbox, ovvero l’avviso di assenza, impostare a ‘YES’ la seguente voce. (Attenzione: Bisogna installare il sistema Vacation secondo le specifiche al seguente sito. http://high5.net/postfixadmin/)
$CONF['vacation'] = 'YES';
Qui sotto vi è una variabile che setta un nome di dominio che verrà usato per il VACATION e che dovrà essere inserito nella configurazione transport del nostro Postfix in modo da abilitare i virtual vacations. Non deve essere necessariamente un dominio reale (i.e. non bisogna settare un reale nome DNS).
$CONF['vacation_domain'] = 'vacation.example.com';
Se si vuole che le utenze possa gestirsi in autonomia i vacation, impostare la prossima variabile a ‘YES’.
$CONF['vacation_control'] ='YES';
Se si vuole che i domain admins possano gestire gli user vacation, impostare la prossima variabile a ‘YES’.
$CONF['vacation_control_admin'] = 'YES';
Alias Control
Il Postfix Admin inserisce un alias all’interno della tabella alias del DB per ogni mailbox creata. La ragione di questa scelta è da attribuirsi al fatto che quando si vuole eseguire un catch-all delle normali mailboxes occorre che le mailbox siano replicate nella tabella alias. Se si vuole permettere la gestione degli aliases, impostare la prossima variabile a ‘YES’.
$CONF['alias_control'] = 'YES';
Per la gestione degli aliases da parte degli admin:
$CONF['alias_control_admin'] = 'YES';
Welcome Message
In questa sezione è possibile settare un messaggio che verrà inviato appena creata una nuova mailbox.
$CONF['welcome_text'] = <<<EOM Hi, Welcome to your new account. EOM;
La variabile qui sotto riportata serve per eseguire un check del dominio in modo da validarne la configurazione a livello DNS prima di creare la singola mailbox.
$CONF['emailcheck_resolve_domain']='YES';
PostfixAdmin Webbased Setup
Il prossimo passo è la configurazione di PostfixAdmin attraverso la pagina di setup che permetterà la configurazione delle tabelle del DB.
http://mail.example.com/postfixadmin/setup.php
Oltre al DB, verificherà la corretta presenza di tutti i moduli necessari al funzionamento di Postfix Admin.
PostfixAdmin Virtual Vacation Setup
Installazione dei prerequisiti per il Vacation
Prima di tutto occorre installare i moduli necessari via CPAN
cpan> install MIME::EncWords ... cpan> install MIME::Charset
Successivamente usare apt o yum per i pacchetti mancanti
yum
yum install perl-DBD-MySQL perl-Email-Valid perl-Mail-Sendmail perl-Log-Log4perl
apt
apt-get install libmail-sender-perl libdbd-pg-perl libemail-valid-perllibmime-perlliblog-log4perl-perlliblog-dispatch-perllibgetopt-argvfile-perllibmime-charset-perllibmime-encwords-perl
Configurazione di PostfixAdmin Virtual Vacation
Creiamo un nuovo utente a sistema che verrà dedicato al sistema vacation:
adduser -d /var/spool/vacation -s /sbin/nologin -r vacation
Copiamo il file vacation.pl all’interno della directory /var/spool/vacation (se non presente, crearla) e assegnamo i permessi dell’utenza e gruppo vacation ad essa.
# cp /var/www/html/postfixadmin/VIRTUAL_VACATION/vacation.pl /var/spool/vacation # chown vacation:vacation /var/spool/vacation/vacation.pl
Configurazione di PostfixAdmin Virtual Vacation script in Postfix
Configuriamo ora Postfix in /etc/postfix/master.cf e /etc/postfix/main.cf files.
- /etc/postfix/master.cf
# PostfixAdmin Vacation Bounceback Filter vacation unix - n n - - pipe flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} ${recipient}
- /etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
Inseriamo in /etc/postfix/transport (se non esiste occorre crearlo) la seguente voce
vacation.example.com vacation:
Il vacation.example.com è lo stesso dominio che era stato inserito nel file conf di PostfixAdmin:
$CONF['vacation_domain'] = 'vacation.example.com';
Creiamo il file db per il file transport
postmap /etc/postfix/transport