Conversione delle mail da MBOX a MAILDIR


Durante la migrazione di un server ho avuto la necessità di trasformare le caselle di posta da MAILBOX a Maildir.
Per fare questo ho utilizzato mb2md (nella versione 3.20 scaricabile qui). Per i più curiosi la home page di riferimento è questa
In seguito mi sono realizzato uno script bash che converte tutto quello che trova in /var/spool/mail e lo mette in /home/$user/Maildir
Questo lo script:

#!/bin/bash
set -x
MAILBOX_DIR=”/var/spool/mail”
#MAILDIR_DIR=”/home/maildir-oldserver”
MAILDIR_DIR=”/home”
[ -d $MAILDIR_DIR ] || mkdir -p $MAILDIR_DIR
cd $MAILBOX_DIR
for user in *; do
mkdir -p $MAILDIR_DIR/$user/Maildir
done

for user in *; do
perl /root/mb2md-3.20.pl -s $MAILBOX_DIR/$user -d $MAILDIR_DIR/$user/Maildir
done

for user in *; do
perl /root/mb2md-3.20.pl -s /home/$user/mail/ -d $MAILDIR_DIR/$user/Maildir
done

for user in *; do
chown -R $user.users $MAILDIR_DIR/$user/
done

Non ho grande esperienza negli script bash … Pertanto si accettano suggerimenti per il miglioramento dello script !

Annunci

Postfix e LDAP-aliases


Molto spesso risulta comodo gestire gli aliases di posta elettronica direttamente tramite LDAP.
Assunto che gli aliases di posta elettronica siano stati migrati da un precedente sistema tramite lo script migrate-aliases e che all’interno dell’albero LDAP sia stata creata la UO “Aliases” …
Queste sono le modifiche da apportare:

/etc/postfix/main.conf

alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf

/etc/postfix/ldap-aliases.conf

server_host = 127.0.0.1
search_base = ou=Aliases, dc=miosito, dc=it
bind_dn = cn=admin, dc=server, dc=miosito, dc=it
bind_pw = pappapronta
query_filter = (&(objectClass=nisMailAlias)(cn=%u))
result_attribute = rfc822MailMember
#result_format = %s
scope = sub
#cache = yes
bind = yes

Cosa conviene mettere in /etc/skel (work in progress …)


In alcune distribuzioni Linux quando si crea un utente viene creato (oltre l’utente in /etc/passwd) anche il gruppo e la home directory sotto /home/nome_utente
Tramite Skel (/etc/skel/) è possibile aggiungere contenuti “extra”. In pratica è possibile decidere cosa mettere di default nella home dell’utente.
In questo piccolo articolo vengono inseriti dei tweak che è preferibile predefinire su un server:

# Aggiungere le directory connesse a MailDir sotto le home degli utenti neo-creati
mkdir -p /etc/skel/Maildir/new
mkdir -p /etc/skel/Maildir/cur
mkdir -p /etc/skel/Maildir/tmp



..

Configurazione veloce di Postfix


Editare il file main.cf

Modificare i parametri:

myhostname = il nome che assumerà il server all’esterno (per esempio: nomeserver.dominio.it)
mydomain = dominio di appartenenza del server (per esempio: dominio.it)
myorigin = indica il dominio per la posta inviata dal server (generalmente: $mydomain)
inet_interfaces = permette di indicare quale interfaccia di rete (se il server ne ha più di una) utilizzare (generalmente: all)
mydestination = sono i domini che il server riconosce come locali (generalmente: mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, http://www.$mydomain)
mynetworks = sono le reti sulle quali il server opera (generalmente: 127.0.0.0/8, 192.168.1.0/24, 10.0.0.0/24

Postfix e smarthost con autenticazione


Chi configura server mail sa bene che è “prudente” configurare il server intranet in modo che la posta inviata dall’interno venga “passata” al server SMTP del provider internet o del provider che fornisce l’hosting (e, conseguentemente, anche le caselle di posta elettronica aziendali).

Questo perchè l’IP del server (che corrisponde l’IP pubblico fornito dall’internet provider) non è registrato come MX sul DNS del provider. Quindi ufficialmente dall’indirizzo IP del provider non è possibile inviare mail. O meglio: molti provider (ad esempio gmail, Aruba, Virgilio/Alice) accettano mail inviate da IP che non sono registrati come MX (ovvero come Mail eXchanger). Altri (come ad esempio Tiscali) risultano essere più “intransigenti”. Se la mail non proviene da un IP registrato come MX non ci sta niente da fare: la mail resterà in coda sul server.

Per ovviare a questo tipo di problemi è possibile fare in modo che la posta in uscita dal server venga passata al server SMTP del provider. Con Postifix è sufficiente:

1) configurare il file /etc/postfix/sasl_passwd in modo che contenga il server SMTP del provider e un username/password per l’autenticazione. Ad esempio:

smtp.example.com username@example.com:password

2) assegnare a /etc/postfix/sasl_passwd i seguenti privilegi:

chown root:root /etc/postfix/sasl_passwd
chmod 0600 /etc/postfix/sasl_passwd

Codificare il file contenente i dati con il comando:

postmap hash:/etc/postfix/sasl_passwd

3) inserire in /etc/postfix/main.conf i seguenti parametri:

relayhost = smtp.example.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =

Postfix e copia automatica delle mail in uscita da un indirizzo …


Una persona mi ha chiesto se era possibile fare in modo che le mail in uscita da un indirizzo di posta elettronica potevano essere automaticamente (ed in modo trasparente) essere inoltrate anche ad un altro indirizzo di posta elettronica (una sorta di “copia di backup” della posta in uscita).

Con Postfix è possibile farlo in modo molto semplice:

1) editare il file /etc/postfix/sender_bcc inserendovi l’indirizzo da “backuppare” e quello di destinazione. Ad esempio:

indirizzo_mail_originale indirizzo_di_backup@famosodominio.it

2) compilare il file con il comando:

postmap /etc/postfix/sender_bcc.cf la riga:

3) inserire in /etc/postfix/mai

sender_bcc_maps = hash:/etc/postfix/sender_bcc

4) fare ripartire Postfix con il comando:

service postfix restart