OVH Community, votre nouvel espace communautaire.

Postfix : problème domaine virtuel


totoAussi
12/09/2012, 15h08
Merci Nowwhat pour ces docs.

Nowwhat
12/09/2012, 14h49
Bonjour,

Bizarre, ton mélange.

Ici http://www.howtoforge.com tu trouvera ton bonheur.
J'ai utilisé moi même ce tuto (postfix + virtual + etc) http://www.howtoforge.com/virtual-us...l-debian-lenny

totoAussi
12/09/2012, 14h26
Rebonjour, c'est bon j'ai résolu.

En fait quand je tapais /etc/init.t.d/mysql restart, j'avais un failed.
Et du coup syslog m'indiquait qu'il n'arrivait pas à créer ibdata1.
En recherchant la solution sur le net, il fallait mv ibdata1 ibdata1.bak

Puis restarter mysql, et là ça remarche.

Merci pour ton aide.

totoAussi
12/09/2012, 14h14
Bonjour Cassiopee

Cassiopee a dit :
Quel est le contenu des fichiers "mysql-virtual_mailbox_domains.cf", "mysql-virtual_mailbox_maps.cf"
et "mysql-virtual_mailbox_maps.cf" ? (en masquant le nom de domaine bien sûr)
Voici leur contenu :

mysql-virtual_mailbox_domains.cf
Code:
#hosts = unix:/var/run/mysqld/mysqld.sock
#hosts = localhost
hosts = 127.0.0.1
user = postfix
password = abcde
dbname = postfix
query = SELECT domain FROM virtual_mailbox_domains WHERE domain = '%d'
=> Et tout est ok avec ce test :
Code:
[guest@localhost~]$ postmap -q "tata@example.com" mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
[guest@localhost~]$ example.com
[guest@localhost~]

mysql-virtual_mailbox_maps.cf :
Code:
#hosts = unix:/var/run/mysqld/mysqld.sock
#hosts = localhost
hosts = 127.0.0.1
user = postfix
password = abcde
dbname = postfix
query = SELECT mailbox FROM virtual_mailbox_maps WHERE userid='%u' and domain='%d'
=> Et tout est ok avec ce test :
Code:
[guest@localhost~]$ postmap -q "tata@example.com" mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
[guest@localhost~]$ tata@example.com
[guest@localhost~]
mysql-virtual_mailbox_maps.cf
Code:
#hosts = unix:/var/run/mysqld/mysqld.sock
#hosts = localhost
hosts = 127.0.0.1
user = postfix
password = abcde
dbname = postfix
query = SELECT alias FROM virtual_alias_maps WHERE email='%s'
=> Et tout est ok avec ce test (je n'ai pas crée d'alias dans la bbd postfix pour tata@example.com):
Code:
[guest@localhost~]$ postmap -q "tata@example.com" mysql:/etc/postfix/mysql-virtual_alias_maps.cf
[guest@localhost~]
[guest@localhost~]
Donc voilà, j'espère vraiment un miracle. A+

cassiopee
12/09/2012, 13h25
Quel est le contenu des fichiers "mysql-virtual_mailbox_domains.cf", "mysql-virtual_mailbox_maps.cf"
et "mysql-virtual_mailbox_maps.cf" ? (en masquant le nom de domaine bien sûr)

totoAussi
12/09/2012, 12h49
Bonjour, et merci de m'avoir répondu

il n'y a pas example.com dans mydestination !
=> non, il ne faut pas mettre un domaine virtuel dans mydestination d'après la doc de postfix sur l'hébergement de domaine virtual.

mail for example.com loops back to myself
=> ce n'est pas parce ce que example.com n'est pas dans mydestination, mais c'est parce qu'un domaine ayant la même ip que le serveur mail ne doit pas utiliser le transport smtp, d'où la boucle.

Donc le problème n'est toujours pas résolu.

Freemaster
11/09/2012, 22h04
mail for example.com loops back to myself

mydestination = ns.example.com, localhost.example.com, , localhost

il n'y a pas example.com dans mydestination !

totoAussi
11/09/2012, 16h11
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:
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:
[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:
[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:
Sep 10 15:39:34 ns postfix/smtp[23727]: 7D387833C1: to=, 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:
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.