Contenu | Rechercher | Menus

DBMail : serveur de courrier IMAP et POP

DBMail permet de stocker les courriels dans une base de données au lieu du disque, et d'y accéder en IMAP ou POP.

Il travaille en conjonction avec Postfix, l'agent de transfert de courriel (MTA) par défaut d'Ubuntu.

Pré-requis

Installation

Configuration

dbmail

la base de données

Création du schema dbmail

mysql -uroot -p
mysql> CREATE schema dbmail;
mysql>ALTER DATABASE  `dbmail` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Récupération et décompression du modèle de table :

cp /usr/share/doc/dbmail-mysql/examples/create_tables.mysql.gz ~/
gzip --decompress ~/create_tables.mysql.gz

Création des tables

mysql -uroot -p dbmail < ~/create_tables.mysql

Création d'un utilisateur dbmail

mysql -uroot -p
GRANT ALL ON dbmail.* to dbmail@localhost identified by 'password';

dbmail

Modification des lignes suivantes dans /etc/dbmail/dbmail.conf

sudo vim /etc/dbmail/dbmail.conf
driver = mysql
authdriver = sql
host = localhost
sqlsocket = /var/run/mysqld/mysqld.sock
user = dbmail
pass = password
db = dbmail
SIEVE_NOTIFY = no

Modification de /etc/default/dbmail pour le démarrage de l'imap et lmtp

sudo vim /etc/default/dbmail
START_IMAPD=1
START_LMTPD=1
START_SIEVE=1

Redémarrage de dbmail

sudo /etc/init.d/dbmail restart

PostFix

Ajout à la fin de /etc/postfix/master.cf

sudo vim /etc/postfix/master.cf
dbmail-lmtp     unix    -       -       n       -       -       lmtp

Configuration de postfix

sudo dpkg-reconfigure postfix

Modification de /etc/postfix/main.cf

sudo vim /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = no
myhostname = smtp.domain.com
mydestination = smtp.domain.com, localhost.domain.com, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 51200000
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
smtpd_recipient_restrictions =
	permit_auth_destination,
	permit_mynetworks,
	permit_sasl_authenticated,
	reject_non_fqdn_hostname,
	reject_non_fqdn_sender,
	reject_non_fqdn_recipient,
	reject_unauth_destination,
	reject_unauth_pipelining,
	reject_invalid_hostname,
	reject_rbl_client opm.blitzed.org,
	reject_rbl_client list.dsbl.org,
	reject_rbl_client bl.spamcop.net,
	reject_rbl_client sbl-xbl.spamhaus.org
	reject
virtual_transport = dbmail-lmtp:localhost:24
virtual_mailbox_domains = mysql:/etc/postfix/sql-virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql-virtual_mailbox_maps.cf

Création de /etc/postfix/sql-virtual_mailbox_domains.cf

sudo vim /etc/postfix/sql-virtual_mailbox_domains.cf
user     = dbmail
password = password
hosts    = 127.0.0.1
dbname   = dbmail
query    = SELECT DISTINCT 1 FROM dbmail_aliases WHERE SUBSTRING_INDEX(alias, '@', -1) = '%s';

Création de /etc/postfix/sql-virtual_mailbox_maps.cf

sudo vim /etc/postfix/sql-virtual_mailbox_maps.cf
user     = dbmail
password = password
hosts    = 127.0.0.1
dbname   = dbmail
query    = SELECT 1 FROM dbmail_aliases WHERE alias='%s';

Redémarrage postfix

sudo /etc/init.d/postfix restart

Pare-feu

Ne pas oublier d'ouvrir les ports du pare-feu

Exemple avec shorewall :

sudo vim /etc/shorewall/rules
IMAP/ACCEPT          net             $FW
SMTP/ACCEPT          net             $FW

redémarrage du pare-feu

sudo /etc/init.d/shorewall restart

Création utilisateur

Voir aussi


Contributeur principal : Flavea.


dbmail.txt · Dernière modification: Le 08/11/2010, 19:45 par Flavea
Le contenu de ce wiki est sous licence : CC BY-SA v3.0