Serveur Mail

Installation

Tout d'abord les paquets à installer :

apt-get install postfix courier-pop courier-imap procmail
  • postfix, pour le serveur SMTP
  • courier-pop, pour le serveur POP3
  • courier-imap, pour le serveur IMAP
  • procmail, pour la distribution du courrier

Configuration

Postfix

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

Utilisateur virtuel sous mySQL

Pour plus de détail veuiller consulter l'article suivant http://doc.ubuntu-fr.org/serveur/postfix_mysql_tls_sasl

  • Installer
apt-get install postfix-mysql
  • Créer un utilisateur commun
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
  • Dans main.cf
# 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
  • Dans master.cf
smtp      inet  n       -       n       -       -       smtpd
cleanup   unix  n       -       n       -       0       cleanup
rewrite   unix  -       -       n       -       -       trivial-rewrite
  • Puis pour mysql :

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';
  • Création des fichiers pour la relation avec la base de données

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_*
  • Lien pour lier 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

Webmail

Installation

  • Télécharger
wget squirrelmail.tar.gz
  • Décompresser
tar xzvf squirrelmail.tar.gz
  • Configurer apache en https

Liste de diffusion

En cours

 
serveur_mail.txt · Dernière modification: 2007/06/09 20:51 par julien
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki