Tout d'abord les paquets à installer :
apt-get install postfix courier-pop courier-imap procmail
Fichier principal main.cf
# Nom de la machine, du domaine et gestion du réseau: myhostname = mx.debux.org mydomain = debux.org masquerade_domains = debux.org mynetworks = 192.168.0.0/24, 127.0.0.0/8
# Paramètre d'envoi du courriel: myorigin = $mydomain default_transport = smtp
# Serveur d'envoi de votre Fournisseur d'accès à Internet: relayhost = smtp.free.fr
# Utilisation de Maildir pour recevoir et gérer les mails via courier-imap: mailbox_command = /usr/bin/procmail
Pour plus de détail veuiller consulter l'article suivant http://doc.ubuntu-fr.org/serveur/postfix_mysql_tls_sasl
apt-get install postfix-mysql
groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /home/vmail -m
# Support Mysql virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps = static:5000 virtual_mailbox_base = /home/vmail virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_limit = 51200000 virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 5000 virtual_transport = virtual virtual_uid_maps = static:5000
# Support du quota virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Desole, la boite email de l'utilisateur est pleine, essayez plus tard. virtual_overquota_bounce = yes
smtp inet n - n - - smtpd cleanup unix n - n - 0 cleanup rewrite unix - - n - - trivial-rewrite
Créer un utilisateur postfix avec un base de données postfix.
Puis créer les tables suivantes :
CREATE TABLE `alias` ( `address` varchar(255) NOT NULL default '', `goto` text NOT NULL, `domain` varchar(255) NOT NULL default '', `created` datetime NOT NULL default '0000-00-00 00:00:00', `modified` datetime NOT NULL default '0000-00-00 00:00:00', `active` tinyint(1) NOT NULL default '1', PRIMARY KEY (address) ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Aliases';
CREATE TABLE `domain` ( `domain` varchar(255) NOT NULL default '', `description` varchar(255) NOT NULL default '', `aliases` int(10) NOT NULL default '0', `mailboxes` int(10) NOT NULL default '0', `maxquota` int(10) NOT NULL default '0', `transport` varchar(255) default NULL, `backupmx` tinyint(1) NOT NULL default '0', `created` datetime NOT NULL default '0000-00-00 00:00:00', `modified` datetime NOT NULL default '0000-00-00 00:00:00', `active` tinyint(1) NOT NULL default '1', PRIMARY KEY (domain) ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Domains';
CREATE TABLE `mailbox` ( `username` varchar(255) NOT NULL default '', `password` varchar(255) NOT NULL default '', `name` varchar(255) NOT NULL default '', `maildir` varchar(255) NOT NULL default '', `quota` int(10) NOT NULL default '0', `domain` varchar(255) NOT NULL default '', `created` datetime NOT NULL default '0000-00-00 00:00:00', `modified` datetime NOT NULL default '0000-00-00 00:00:00', `active` tinyint(1) NOT NULL default '1', PRIMARY KEY (`username`) ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Mailboxes';
mysql_virtual_alias_maps.cf
user = postfix password = motdepasse hosts = 127.0.0.1 dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active = 1
mysql_virtual_domains_maps.cf
user = postfix password = motdepasse hosts = 127.0.0.1 dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' #optional query to use when relaying for backup MX #query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' and active = '1'
mysql_virtual_mailbox_maps.cf
user = postfix password = motdepasse hosts = 127.0.0.1 dbname = postfix query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
mysql_virtual_mailbox_limit_maps.cf
user = postfix password = motdepasse hosts = 127.0.0.1 dbname = postfix query = SELECT quota FROM mailbox WHERE username='%s'
mysql_relay_domains_maps.cf
user = postfix password = motdepasse hosts = 127.0.0.1 dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'
Changer les droits
chmod 640 mysql_* chgrp postfix mysql_*
mkdir -p /var/spool/postfix/var/run/mysqld chown mysql /var/spool/postfix/var/run/mysqld ln -s /var/run/mysqld/mysqld.sock /var/spool/postfix/var/run/mysqld/mysqld.sock
mkdir -p /var/spool/postfix/var/run/courier/authdaemon ln -s /var/run/courier/authdaemon/socket /var/spool/postfix/var/run/courier/authdaemon/socket chown -R daemon:daemon /var/spool/postfix/var/run/courier chmod 755 /var/run/courier/authdaemon
wget squirrelmail.tar.gz
tar xzvf squirrelmail.tar.gz
En cours