Bonjour,

j'ai un serveur dédié kimsufi debian squeeze stable 64 bit où j'ai installé postfix et postfix-mysql.

Mon problème est que postfix utilise le transport smtp au lieu du transport virtual lorsqu'il s'agit d'envoyer des messages vers les domaines virtuels (càd domaines listés dans virtual_mailbox_domains du fichier main.cf).

Voici ma configuration postfix (j'ai remplacé le vrai nom de domaine par example.com) :

-Fichier main.cf :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
smtpd_use_tls=no
 
myhostname = ns.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = ns.example.com, localhost.example.com, , localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
 
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
On vérifie que posfix trouvent bien les informations dans mysql, et on voit que tout est ok :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
[guest@localhost~]$ postmap -q "tata@example.com" mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
[guest@localhost~]$ example.com
[guest@localhost~]
 
[guest@localhost~]$ postmap -q "tata@example.com" mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
[guest@localhost~]$ tata@example.com
[guest@localhost~]
On vérifie que le domaine pointe bien vers le serveur dédié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
[guest@localhost~]$ dig mx example.com +short
[guest@localhost~]$ 10 mail.example.com
[guest@localhost~]
Ensuite on envoie un mail de test vers tata@example.com, et là problème car postfix utilise le transport smtp au lieu du transport virtual, d'après syslog :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Sep 10 15:39:34 ns postfix/smtp[23727]: 7D387833C1: to=<tata@example.com>, relay=none, delay=0.11, delays=0.1/0.01/0/0, dsn=5.4.6, status=bounced (mail for example.com loops back to myself)
Par ailleurs, j'ai l'impression que je suis maudit avec la méthode mysql, car quand j'utilise la méthode des fichiers hash (voir ci-dessous) à la place, postfix utilise bien le transport virtual et non le transport smtp.

Méthode des fichiers hash :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
virtual_mailbox_domains = example.com (au lieu de mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf)
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox (au lieu de mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf)
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual (au lieu de mysql:/etc/postfix/mysql-virtual_alias_maps.cf)
Donc pourquoi quand j'utilise la méthode mysql et non la méthode hash dans main.cf, postfix utilise le transport smtp au lieu du transport virtual pour mon domaine virtuel ?

Merci d'avance pour vos réponses, cordialement.