Installation de postfix et courier
Installation de postfix (choisir "Aucune configuration")
Configuration de Postfix
Postfix permet de gérer des utilisateurs virtuels et pour cela on créé le groupe vmail
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/spool/vmail/ -m
On configure mysql pour pouvoir l'utiliser avec postfix : on doit décommenter cette ligne :
Debian 8
bind-address = 127.0.0.1
Debian 9
bind-address = 127.0.0.1
On se connecte à mysql afin de le configurer, et il faudra entrer votre mot de passe paramétré lors de l'installation de mysql
mysql -p
On va créer une table mysql nommée postfix et la sélectionner pour la remplir.
create database postfix character set utf8;
use postfix;
CREATE TABLE `domain` (
`domain` varchar(255) NOT NULL default '',
`actif` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`domain`)
) ENGINE=MyISAM COMMENT='Postfix Admin - Domaines Virtuels';
CREATE TABLE `mailbox` (
`email` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`quota` int(10) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`actif` tinyint(1) NOT NULL default '1',
`imap` tinyint(1) NOT NULL default '1',
`pop3` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`email`)
) ENGINE=MyISAM COMMENT='Postfix Admin - Boites Emails Virtuelles';
CREATE TABLE `alias` (
`source` varchar(255) NOT NULL default '',
`destination` text NOT NULL,
`actif` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`source`)
) ENGINE=MyISAM COMMENT='Postfix Admin - Alias Virtuels';
On rajoute l'utilisateur mysql pour postfix, pensez à remplacer MONMOTDEPASSE par le mot de passe désiré.
GRANT SELECT ON `postfix`.* TO 'postfix'@'%' IDENTIFIED BY 'MONMOTDEPASSE';
On applique les paramètres:
FLUSH PRIVILEGES;
Et on termine notre session mysql.
exit;
Les fichiers de configuration de postfix
Comme nous avons choisis 'sans configuration' on va créer les fichiers de configuration:
Replacez nom_de_votre_serveur et ip_de_votre_serveur par les paramètres de votre serveur dédié.
Et remplacez MONMOTDEPASSE par celui que vous avez choisis pour l'utilisateur mysql de postfix
biff = no
disable_vrfy_command = yes
smtpd_helo_required = yes
append_dot_mydomain = no
mydestination = nom_de_votre_serveur, localhost, localhost.localdomain
mydomain = nom_de_votre_serveur
myhostname = nom_de_votre_serveur
relayhost =
mynetworks = 127.0.0.0/8 ip_de_votre_serveur
inet_interfaces = all
smtpd_sender_restrictions =
permit_mynetworks,
reject_unknown_sender_domain,
warn_if_reject,
reject_unverified_sender
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
reject_unknown_recipient_domain,
reject_non_fqdn_recipient
smtpd_client_restrictions =
reject_unknown_client,
permit_mynetworks
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf, mysql:/etc/postfix/mysql-virtual_aliases_mailbox.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/spool/vmail/
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
Attention aux espaces qui sont important pour la syntaxe de ce fichier de configuration notamment après "smtpd_sender_restrictions =" par exemple
hosts = 127.0.0.1
user = postfix
password = MONMOTDEPASSE
dbname = postfix
select_field = quota
table = mailbox
where_field = email
hosts = 127.0.0.1
user = postfix
password = MONMOTDEPASSE
dbname = postfix
select_field = email
table = mailbox
where_field = email
additional_conditions = AND actif='1'
hosts = 127.0.0.1
user = postfix
password = MONMOTDEPASSE
dbname = postfix
select_field = destination
table = alias
where_field = source
additional_conditions = AND actif='1'
hosts = 127.0.0.1
user = postfix
password = MONMOTDEPASSE
dbname = postfix
select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
table = mailbox
where_field = email
additional_conditions = AND actif='1'
hosts = 127.0.0.1
user = postfix
password = MONMOTDEPASSE
dbname = postfix
select_field = 'virtual'
table = domain
where_field = domain
additional_conditions = AND actif='1'
On modifie les droits de ces fichiers de configuration:
chgrp postfix /etc/postfix/mysql-virtual_*.cf
chmod u=rw,g=r,o= /etc/postfix/mysql-virtual_*.cf
Un redémarrage de Postfix, et un test de la configuration, si aucun message apparaît alors c'est ok:
/etc/init.d/postfix restart
postfix check
Installation de courier
apt-get install courier-base courier-authdaemon courier-authlib-mysql courier-imap courier-pop
Et répondre oui à la question suivante (faut il créer les répertoires):
On précise à postfix que l'on va utiliser mysql on modifie la ligne par authmodulelist=.
authmodulelist="authmysql"
On remplace les valeurs du fichier /etc/courier/authmysqlrc par ce qui suit:
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD MONMOTDEPASSE
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/var/spool/vmail/"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
MYSQL_QUOTA_FIELD quota
On pense à redémarrer les différents démons que l'on a paramétrés :
/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-pop restart
L'accès POP ou IMAP échouera si la boîte mail n'existe pas ! En conséquence, je vous conseille d'envoyer un email de bienvenue lors de la création de vos comptes. Cela vous permettra de créer le répertoire !
On va maintenant tester tout ca et pour cela on installe :
apt-get install mailutils
On test que notre domaine est bien configuré dans bind pour accepter notre serveur mail :
host -t MX nom_domaine
Et la réponse doit être (sinon il faut configurer un MX dans bind) :
nom_domaine.com mail is handled by 10 mail.nom_domaine.com.
On va créer un compte email dans notre base de donnée, choisissez vos paramètres
mysql -u root -p
use postfix;
INSERT INTO domain (domain, actif) VALUES ('nom_domaine.com', '1');
INSERT INTO mailbox (email,password,quota,name,actif,imap,pop3) VALUES ('user@nom_domaine.com',ENCRYPT('MONMOTDEPASSEDUCOMPTEMAIL'),0,'',1,1,1);
exit;
Et maintenant, on va envoyer un mail pour créer le repertoire qui va bien dans /var/spool/vmail/:
mail -s "This is the subject" user@nom_domaine.com
vous pouvez ajouter une copie carbonne (cc)
écrivez un mail de test et pour quitter il faut taper sur CTRL+D
en principe vous devez maintenant avoir un répertoire dans /var/spool/vmail/, si ce n'est pas le cas, ça craind...
Après ce test d'envois de mail, le répertoire /var/spool/vmail/exemple.com à été créé et qui contiendra les emails
on attribue donc les droits à ce répertoire.
chmod -R 777 /var/spool/vmail/exemple.com
pour vérifier tout ca avec votre logiciel mail, comme Mozilla Thunderbird sous windows par exemple :
Pour tracer les éventuels bugs dans le fichier /var/log/mail.log vous pouvez mettre à 2 le niveau de debug
DEBUG_LOGIN=2
Bonjour, avez-vous une raison particulière pour avoir choisi "Aucune configuration" pendant l'installation de postfix ? En tout cas super tuto merci !
1 réponse(s) :
Bonjour
Choisir "aucune configuration" permet de choisir exactement la configuration que l'on souhaite, il faudrait essayer autrement pour voir la différence, mais j'ai toujours fais ainsi...
Répondre à ce(s) commentaires(s)