Postfix-2.4.5 & dovecot-1.0.4 & MySQL-5.0.45
Par Ludo le vendredi 21 mars 2008, 23:51 - Linux - Lien permanent
Un post sur l'installation d'un serveur mail basée sous postfix (smtp), dovecot (pop/imap) le tout sur une base MySQL et PostfixAdmin (interface web)
Bon, comme vous avez pu le remarquer, il existe une pléthore de documentations pour installer un serveur mail, en voilà une de plus :) basée sur des infos glanées à droite, à gauche...
Une chose dans le duo postfix/dovecot est que postfix supporte le SASL au travers de dovecot, donc ca simplifie les choses, plus besoin de gérer l'authentification via SASL de manière indépendante.
1/ Installation des prérequis
Comme d'hab, j'annote pas les dépendances :)
Installation de openssl-0.9.8e
# cd ~/work/ # wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz # tar xvzf openssl-0.9.8e.tar.gz # ./config --prefix=/applis/openssl-0.9.8e shared # make && make install
Installation de httpd-2.2.6
# cd ~/work/ # wget http://apache.crihan.fr/dist/httpd/httpd-2.2.6.tar.gz # tar xvzf httpd-2.2.6.tar.gz # cd httpd-2.2.6/ ./configure --prefix=/applis/apache-2.2.6 \ --enable-modules=all \ --enable-mods-shared=all # make && make install
Installation de MySQL-5.0.45
# cd ~/work/ # wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.45.tar.gz/from/ftp://ftp.inria.fr/pub/MySQL/ # tar xvzf mysql-5.0.45.tar.gz # cd mysql-5.0.45 ./configure --prefix=/applis/mysql-5.0.45 \ --localstatedir=/var/db/mysql \ --with-unix-socket-path=/var/tmp/mysql.sock # make && make install
Installation de dovecot 1.0.4
# cd ~/work/ # wget http://www.dovecot.org/releases/1.0/dovecot-1.0.4.tar.gz # tar xvzf dovecot-1.0.4.tar.gz # cd dovecot-1.0.4
Nous devons indiquer au makefile explicitement où trouver les librairies et header d'openssl. Normalement, vous devez renseigner votre fichier /etc/ld.so.conf pour lui indiquer les lib de vos applis installées et le makefile doit se renseigner correctement.
LDFLAGS='-L/applis/openssl-0.9.8e/lib -L/applis/mysql-5.0.45/lib/mysql' \ CPPFLAGS='-I/applis/openssl-0.9.8e/include -I/applis/mysql-5.0.45/include/mysql' \ ./configure --prefix=/applis/dovecot-1.0.4 \ --disable-ipv6 \ --without-pam \ --without-ldap \ --without-sqlite \ --with-sql \ --with-mysql \ --with-gssapi \ --with-ssl=openssl # make && make install
Installation de pcre-7.3
# cd ~/work/ # wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.3.tar.bz2 # tar xvjf pcre-7.3.tar.bz2 # cd pcre-7.3 ./configure --prefix=/applis/pcre-7.3 \ --enable-unicode-properties # make && make install
2/ Installation de Postfix
Pour installer postfix, nous avons besoin de berkeleydb, nous utiliserons la version du sytème (4.4):
# apt-get install libgd-4.4 libgd-4.4-dev
Ensuite mettez à jour votre système pour trouver les bonnes lib das applis que nous venons d'installer :
# vi /etc/ld.so.conf
/applis/dovecot-1.0.4/lib/dovecot /applis/pcre-7.3/lib /applis/mysql-5.0.45/lib/mysql /applis/openssl-0.9.8e/lib
Mettre à jour le système
# ldconfig
Vous pouvez vérifier de visu
# ldconfig -p
On installe :
# cd ~/work/ # wget ftp://ftp.doc.cs.univ-paris8.fr/mirrors/ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.4.5.tar.gz # tar xvjf postfix-2.4.5.tar.gz # cd postfix-2.4.5
Pour la configuration de postfix, nous surchargeons le makefile de postfix en spécifiant à postfix où trouver nos librairies et header :
# make tidy # make makefiles \ 'CCARGS=-DDEF_CONFIG_DIR=\"/applis/postfix-2.4.5/etc\" \ -DHAS_MYSQL -I/applis/mysql-5.0.45/include/mysql \ -DHAS_PCRE -I/applis/pcre-7.3/include \ -DUSE_SSL -I/applis/openssl-0.9.8e/include \ -DUSE_SASL_AUTH -DDEF_SASL_SERVER=\"dovecot\"' \ 'AUXLIBS=-L/applis/mysql-5.0.45/lib/mysql -lmysqlclient -lz -lm \ -L/applis/pcre-7.3/lib -lpcre \ -L/applis/openssl-0.9.8e/lib -lssl -lcrypto' # make
Au moment du make install, une série de question va être posée sur les emplacements souhaités des fichiers de conf et autres binaires
# make install # install_root: [/] # tempdir: [/root/work/postfix-2.4.5] # config_directory: [/applis/postfix-2.4.5/etc] # daemon_directory: [/applis/postfix-2.4.5/libexec] # command_directory: [/applis/postfix-2.4.5/sbin] # queue_directory: [/var/postfix/spool] # sendmail_path: [/applis/postfix-2.4.5/sbin/sendmail] # newaliases_path: [/applis/postfix-2.4.5/bin/newaliases] # mailq_path: [/applis/postfix-2.4.5/bin/mailq] # mail_owner: [postfix] # setgid_group: [postdrop] # html_directory: [no] # manpage_directory: [/applis/postfix-2.4.5/man] # readme_directory: [no]
Pour finaliser l'installation, il faut les utilisateurs/groupes de postfix :
# groupadd postdrop # groupadd postfix # useradd -c "Postfix user" -d /dev/null -s /bin/false -g postfix
Pour avoir les pages de man :
# vi /etc/manpath.config
MANDATORY_MANPATH /applis/postfix-2.4.5/man MANPATH_MAP /applis/postfix-2.4.5/bin /applis/postfix-2.4.5/man MANPATH_MAP /applis/postfix-2.4.5/sbin /applis/postfix-2.4.5/man
Ajouter dans le fichier /etc/profile ples lignes suivantes afin que les binaires soient dans le PATH :
# vi /etc/profile
for a in /applis/*/bin /applis/*/sbin do PATH=$PATH:$a done
# source /etc/profile
Script d'init
#!/bin/sh -e
# Start or stop Postfix
#
# LaMont Jones
# based on sendmail's init.d script
PATH=/applis/postfix-2.4.5/bin:/applis/postfix-2.4.5/sbin:/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/applis/postfix-2.4.5/sbin/postfix
PIDFILE=/var/run/postfix.pid
NAME=Postfix
test -x $DAEMON -a -f /applis/postfix-2.4.5/etc/main.cf || exit 0
case "$1" in
start)
echo -n "Starting mail transport agent: Postfix"
# Make sure that the chroot environment is set up correctly.
oldumask=$(umask)
umask 022
cd $(postconf -h queue_directory)
FILES="etc/localtime etc/services etc/resolv.conf etc/hosts
etc/nsswitch.conf usr/lib/zoneinfo/localtime"
for file in $FILES; do
[ -d ${file%/} ] || mkdir -p ${file%/}
if [ -f /${file} ]; then cp /${file} ${file}; fi
if [ -f ${file} ]; then chmod a+rX ${file}; fi
done
rm -f lib/libnss_so
tar cf - /lib/libnss_so 2>/dev/null |tar xf -
umask $oldumask
/applis/postfix-2.4.5/sbin/postfix start 2>&1 |
(grep -v 'starting the Postfix' 1>&2 || /bin/true)
echo "."
;;
stop)
echo -n "Stopping mail transport agent: Postfix"
/applis/postfix-2.4.5/sbin/postfix stop 2>&1 |
(grep -v 'stopping the Postfix' 1>&2 || /bin/true)
echo "."
;;
restart)
$0 stop
$0 start
;;
force-reload|reload)
echo -n "Reloading Postfix configuration..."
/applis/postfix-2.4.5/sbin/postfix reload 2>&1 |
(grep -v 'refreshing the Postfix' 1>&2 || /bin/true)
echo "done."
;;
flush)
/applis/postfix-2.4.5/sbin/postfix flush
;;
check)
/applis/postfix-2.4.5/sbin/postfix check
;;
*)
echo "Usage: /etc/init.d/postfix {start|stop|restart|reload|flush|check|force-reload}"
exit 1
;;
esac
exit 0
# chmod +x /etc./init.d/postfix
Vérifiez votre fichier main.cf afin qu'il corresponde bien à vos attentes même si celui-ci est préconfiguré au moment du make install. Pour finaliser cette première d'installation de postfix :
# postfix set-permissions # postalias /etc/aliases
et pour finir :
# /etc/init.d/postfix start
Devrait donner lors d'un netstat :
# netstat -nptl|grep :25 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 22476/master
Nous allons faire un test pour vérifier que tout est en ordre : En local ou d'une machine distante : Ici d'une machine distante :
# telnet 10.0.0.14 25 Trying 10.0.0.14... Connected to 10.0.0.14. Escape character is '^]'. 220 mx1.moustik.org ESMTP Postfix EHLO mx1.moustik.org 250-mx1.moustik.org 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM:<n.sarkozy@plop.gouv.fr> 250 2.1.0 Ok RCPT TO:<c.bruni@plop.gouv.fr> 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> plop! . 250 2.0.0 Ok: queued as 4BF7331D0039 quit 221 2.0.0 Bye Connection closed by foreign host.
Les journaux côté du serveur :
mx1 postfix/smtpd[20875]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled mx1 postfix/smtpd[20875]: connect from ns16104.ovh.net[3.21.80.67] mx1 postfix/smtpd[20875]: 4BF7331D0039: client=ns16104.ovh.net[3.21.80.67] mx1 postfix/cleanup[20971]: 4BF7331D0039: message-id=<20070908123125.4BF7331D0039@mx1.moustik.org> mx1 postfix/qmgr[22478]: 4BF7331D0039: from=<n.sarkozy@plop.gouv.fr>, size=382, nrcpt=1 (queue active) mx1 postfix/smtp[20972]: 4BF7331D0039: to=<c.bruni@plop.gouv.fr>, relay=gmail-smtp-in.l.google.com[66.249.93.114]:25, delay=47, delays=46/0/0.1/1.1, dsn=2.0.0, status=sent (250 2.0.0 OK 1189254735 n34si2274258ugc) mx1 postfix/qmgr[22478]: 4BF7331D0039: removed mx1 postfix/smtpd[20875]: disconnect from ns16104.ovh.net[10.0.0.14]
Attention, notre serveur dans l'état actuel est en openrelay ce qui signifie que tout le monde peut s'en servir pour envoyer des mails, ce qui fait que très vite celui-ci va être blacklisté, il ne faut PAS le laisser avec une configuration aussi permissive. Nous allons utiliser l'authentification via SASL pour authoriser ou pas notre serveur à relayer.
3/ Support du virtuel
Le but de l'installation est de supporter plusieurs domaines. Nous allons donc configurer postfix pour le support virtuel. Nous allons utiliser mysql pour stocker nos domaines et comptes virtuels.
Nous créons d'abord le compte et le groupe vmail :
# groupadd vmail # useradd -c "Vmail user" -d /dev/null -s /bin/false -g vmail # groupmod -g 5000 vmail # usermod -u 5000 -g 5000 vmail
Nous devons modifier la configuration de postfix pour obtenir ce support, nous allons en profiter pour la remanier un peu :
# vi /applis/postfix-2.4.5/etc/main.cf
# ========================================================== # Declarations et restrictions sur le serveur smtp # ========================================================== myhostname = mx1.moustik.org mydomain = moustik.org myorigin = $mydomain mydestination = $myhostname, localhost.$mydomain, localhost # ========================================================== # Definition des repertoires # ========================================================== queue_directory = /var/postfix/spool command_directory = /applis/postfix-2.4.5/sbin daemon_directory = /applis/postfix-2.4.5/libexec sendmail_path = /applis/postfix-2.4.5/sbin/sendmail newaliases_path = /applis/postfix-2.4.5/bin/newaliases mailq_path = /applis/postfix-2.4.5/bin/mailq # ========================================================== # Definition des droits # ========================================================== mail_owner = postfix setgid_group = postdrop # ========================================================== # Alias systeme # ========================================================== alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases # ========================================================== # Directives diverses (non indispensables) # ========================================================== smtpd_banner = $myhostname ESMTP $mail_name (Windows NT server) biff = no unknown_local_recipient_reject_code = 550 debug_peer_level = 2 html_directory = no manpage_directory = /applis/postfix-2.4.5/man sample_directory = /applis/postfix-2.4.5/etc readme_directory = no # =========================================================== # Support pour le virtuel au travers de MySQL # =========================================================== virtual_alias_maps = mysql:/applis/postfix-2.4.5/etc/mysql_virtual_alias_maps.cf virtual_mailbox_domains = mysql:/applis/postfix-2.4.5/etc/mysql_virtual_domains_maps.cf virtual_mailbox_base = /var/vmail/spool/ virtual_mailbox_maps = mysql:/applis/postfix-2.4.5/etc/mysql_virtual_mailbox_maps.cf virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_minimum_uid = 5000 # =========================================================== # Support pour les quotas de boite mail au travers de MySQL # =========================================================== virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = mysql:/applis/postfix-2.4.5/etc/mysql_virtual_mailbox_limit_maps.cf virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Trop plein... virtual_overquota_bounce = yes # =========================================================== # Directive pour déclarer un domaine comme MX secondaire ou pas # =========================================================== relay_domains = mysql:/applis/postfix-2.4.5/etc/mysql_relay_domains_maps.cf
les fichiers de configuration de postfix pour mysql
# vi /applis/postfix-2.4.5/etc/mysql_relay_domains_maps.cf
user = USER password = PASSWD hosts = 127.0.0.1 dbname = DB query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'
# vi /applis/postfix-2.4.5/etc/mysql_virtual_alias_maps.cf
user = USER password = PASSWD hosts = 127.0.0.1 dbname = DB query = SELECT goto FROM alias WHERE address='%s' AND active = 1
# vi /applis/postfix-2.4.5/etc/mysql_virtual_domains_maps.cf
user = USER password = PASSWD hosts = 127.0.0.1 dbname = DB #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'
# vi /applis/postfix-2.4.5/etc/mysql_virtual_mailbox_limit_maps.cf
user = USER password = PASSWD hosts = 127.0.0.1 dbname = DB query = SELECT quota FROM mailbox WHERE username='%s'
# vi /applis/postfix-2.4.5/etc/mysql_virtual_mailbox_maps.cf
user = USER password = PASSWD hosts = 127.0.0.1 dbname = DB query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
4/ Création de la base de donnée
# mysql mysql> CREATE DATABASE postfix; mysql> GRANT ALL PRIVILEGES ON postfix.* TO postfixadmin@'localhost' identified by 'xxx'; mysql> FLUSH PRIVILEGES;
Injecter ensuite le dump dans la base postfix :
# mysql postfix < dump.sql
CREATE TABLE admin ( username varchar(255) NOT NULL default '', password 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), KEY username (username) ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Admins'; 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), KEY address (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), KEY domain (domain) ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Domains'; CREATE TABLE domain_admins ( username varchar(255) NOT NULL default '', domain varchar(255) NOT NULL default '', created datetime NOT NULL default '0000-00-00 00:00:00', active tinyint(1) NOT NULL default '1', KEY username (username) ) TYPE=MyISAM COMMENT='Postfix Admin - Domain Admins'; CREATE TABLE log ( timestamp datetime NOT NULL default '0000-00-00 00:00:00', username varchar(255) NOT NULL default '', domain varchar(255) NOT NULL default '', action varchar(255) NOT NULL default '', data varchar(255) NOT NULL default '', KEY timestamp (timestamp) ) TYPE=MyISAM COMMENT='Postfix Admin - Log'; 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), KEY username (username) ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Mailboxes'; CREATE TABLE vacation ( email varchar(255) NOT NULL default '', subject varchar(255) NOT NULL default '', body text NOT NULL, cache text NOT NULL, domain varchar(255) NOT NULL default '', created datetime NOT NULL default '0000-00-00 00:00:00', active tinyint(1) NOT NULL default '1', PRIMARY KEY (email), KEY email (email) ) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Vacation';
5/ SASL
Pour le support SASL, nous passerons par dovecot :
# vi /applis/postfix-2.4.5/etc/main.cf
# ===============================================
# Support SASL au travers de dovecot
# ===============================================
smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/postfix/spool/private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination
6/ Installation de dovecot
Dovecot est un serveur pop/imap rapide, stable et sécure :) Sa configuration est assez aisée. Postfix depuis sa version 2.3 supporte l'authentification à travers dovecot, alors qu'avant nous devions utiliser cyrus-sasl (par exemple) comme couche d'authentification pour le relay, ici tout se fera au travers de dovecot, ce qui va simplifier les choses :)
Donc pour ce qui est de l'installation, nous avons déjà fait :
# cd ~/work/ # wget http://www.dovecot.org/releases/1.0/dovecot-1.0.4.tar.gz # tar xvzf dovecot-1.0.4.tar.gz # cd dovecot-1.0.4
On créé le groupe et le compte utilisateur dovecot :
# groupadd dovecot # useradd -d /dev/null -s /bin/false -g dovecot dovecot
On configure dovecot avec une approche minimalistique pour le moment :)
# vi /applis/devecot-1.0.4/etc/dovecot.conf
protocols = imap pop3
disable_plaintext_auth = no
ssl_disable = yes
default_mail_env = /var/vmail/spool
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot.info.log
log_timestamp = "%b %d %H:%M:%S "
mail_extra_groups = postfix
verbose_proctitle = yes
first_valid_uid = 1002
first_valid_gid = 106
protocol imap {
imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
postmaster_address = postmaster@moustik.org
}
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth default {
mechanisms = plain
user = root
passdb passwd-file {
args = /applis/dovecot-1.0.4/etc/dovecot.passdb
}
userdb passwd-file {
args = /applis/dovecot-1.0.4/etc/dovecot.passdb
}
}
# touch /applis/dovecot-1.0.4/etc/dovecot.passdb
On démarre dovecot :
# /etc/init.d/dovecot start # netstat -nptl|grep dovecot tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 29595/dovecot tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 29595/dovecot
7/ Ajout du support MySQL pour dovecot
Nous créons le fichier :
# vi /applis/dovecot-1.0.4/etc/dovecot-sql.conf
driver = mysql # Currently supported schemes include PLAIN, PLAIN-MD5, DIGEST-MD5, and CRYPT. default_pass_scheme = CRYPT # Database options connect = host=127.0.0.1 dbname=DB user=USER password=PASSWD password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1' user_query = SELECT maildir, 5000 AS uid, 5000 AS gid FROM mailbox WHERE username = '%u' AND active = '1'
On ajoute au fichier de configuration de dovecot le support mysql :
auth default {
mechanisms = plain login
passdb sql {
args = /applis/dovecot-1.0.4/etc/dovecot-sql.conf
}
userdb sql {
args = /applis/dovecot-1.0.4/etc/dovecot-sql.conf
}
}
8/ On ajoute le support SASL dans la conf de dovecot
auth default {
mechanisms = plain login
passdb sql {
args = /applis/dovecot-1.0.4/etc/dovecot-sql.conf
}
userdb sql {
args = /applis/dovecot-1.0.4/etc/dovecot-sql.conf
}
socket listen {
client {
path = /var/postfix/spool/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
Ajout du SSL pour le pop3 et l'imap :
# cd /applis/dovecot-1.0.4/etc/ # mkdir -p ssl/private ssl/public # openssl req -new -x509 -nodes -out public/dovecot.pem -keyout private/dovecot.pem -days 3650
Modifier le fichier de configuration de dovecot :
protocols = imap imaps pop3 pop3s ssl_disable = no ssl_cert_file = /applis/dovecot-1.0.4/etc/ssl/public/dovecot.pem ssl_key_file = /applis/dovecot-1.0.4/etc/ssl/private/dovecot.pem ssl_parameters_regenerate = 24
Regénerez les paramètres SSL pour dovecot :
# cd /applis/dovecot-1.0.4/ # /applis/dovecot-1.0.4/libexec/dovecot/ssl-build-param \ var/run/dovecot/login/ssl-parameters.dat
9/ Postfixadmin
Postfixadmin est une petite appli en php/mysql pour gérer les domaines et les comptes mail.
# cd /var/www/ # wget http://surfnet.dl.sourceforge.net/sourceforge/postfixadmin/postfixadmin-2.1.0.tgz # cd /var/www/ # tar xvjf postfixadmin-2.1.0.tgz # cd postfixadmin-2.1.0/ # cp config.inc.php.sample config.inc.php # vi config.inc.php
Changer les lignes suivantes :
// Mailboxes // If you want to store the mailboxes per domain set this to 'YES'. // Example: /usr/local/virtual/domain.tld/username@domain.tld $CONF['domain_path'] = 'YES'; // If you don't want to have the domain in your mailbox set this to 'NO'. // Example: /usr/local/virtual/domain.tld/username $CONF['domain_in_mailbox'] = 'YES';
On ajoute un vhost à httpd :
<VirtualHost *:8000>
DocumentRoot /var/www/postfixadmin-2.1.0
ServerName mail.plop.org
ServerAdmin admin@plop.org
DirectoryIndex index.html index.php
CustomLog /var/logs/httpd/postfixadmin.log combined
ErrorLog /var/logs/httpd/postfixadmin_error.log
LogLevel warn
<Directory "/var/www/postfixadmin-2.1.0">
Options Indexes FollowSymLinks
AllowOverride AuthConfig
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
Vérifier les droits sur les les répertoires maildir :
# chown -R vmail: /var/vmail/
Attention également à vos runlevels, il faut démarrer dovecot avant postfix à cause de sa dépendance vis à vis de SASL, et démarrer MySQL avant dovecot et postfix.
A ce stade là, vous avez (normalement) un serveur smtp/imap(s)/pop3(s)/mysql multi-domaine avec un interface web pour gérer les comptes. Ca devrait être bon :)
Commentaires