postfix + mailman: Recipient address rejected
Bonjour !
Je rencontre une erreur lorsque je souhaite utiliser mailman pour une liste de diffusion. Je vais décrire le problème plus bas, voici d'abord le contexte:
Je souhaite mettre en place un réseau de communication par le biais de courriels sur mon réseau local. Ainsi qu'un liste de diffusion (mailman).
J'ai trouvé un tuto très sympathique me permettant de configurer les logiciels suivants, qui corresponde a mes besoins:
Postfix, Postfixadmin, Dovecot, Mysql et Squirrelmail.
L'échange de mails fonctionne correctement (pas du bug, logs propres) et Squirrelmail marche a merveille. Mon problème se situe donc au niveau de mailman, plus précisément lorsque l'on souhaite écrire a la liste de diffusion. Le message d'erreur nous informe que l'adresse n'est pas connue.
Citation:
Aug 24 13:41:21 marx postfix/smtpd[32674]: connect from localhost[127.0.0.1]
Aug 24 13:41:21 marx postfix/smtpd[32674]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 5.1.1 <ma-liste-de-diffusion-bounces@reseau.local>: Recipient address rejected: User unknown in virtual mailbox table; from=<test3@reseau.local> to=<ma-liste-de-diffusion-bounces@reseau.local> proto=ESMTP helo=<marx>
Aug 24 13:41:21 marx postfix/smtpd[32674]: lost connection after RCPT from localhost[127.0.0.1]
Aug 24 13:41:21 marx postfix/smtpd[32674]: disconnect from localhost[127.0.0.1]
Voici les fichiers de configurations en questions (certaines config sont changés en commentaires, dû a du bidouillage de test):
/etc/postfix/main.cf
Code:
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
delay_warning_time = 1h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = marx.bux.fr
#alias_maps = hash:/etc/aliases
#alias_database = hash:/etc/aliases
mydestination = localhost.localdomain, , localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, reseau.local, marx.bux.fr
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
myorigin = /etc/mailname
default_transport = error
relay_transport = error
virtual_uid_maps = static:3000
virtual_gid_maps = static:3000
virtual_mailbox_base = /home/courriers
virtual_transport = dovecot
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
relay_domains = mysql:/etc/postfix/mysql_relay_domains.cf
#relay_domains = reseau.local, marx.bux.fr
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
# Obtenir une alerte si les emails ne partent pas
# Par défaut cette option est réglée à 4 heures, j'ai réduit cette durée:
delay_warning_time = 1h
# Ajoutez votre réseau local ici
mynetworks = 192.168.0.0/22 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# Indiquer à Postfix de livrer à un destinataire à la fois
# la réception d'un mail en provenance d'un expéditeur unique avec plusieurs destinataire ne fonctionnerais pas sans cette option
dovecot_destination_recipient_limit = 1
# mailman:
unknown_local_recipient_reject_code = 550
# Gestion de mailman => ajout de hash:/var/lib/mailman/data/aliases
alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases
alias_database = hash:/etc/aliases,hash:/var/lib/mailman/data/aliases
#transport_maps = hash:/etc/postfix/transport
mailman_destination_recipient_limit = 1 |
/etc/postfix/master.cf (je cite seulement la fin du fichier)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
[...]
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=courriers:courriers argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
dovecot unix - n n - - pipe
flags=DRhu user=courriers:courriers argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} |
Ce que je comprend donc de l'erreur, c'est que ma-liste-de-diffusion-bounces@reseau.local n'est pas connue de postfix, que entre autre (je m'aventure là ^^) elle n'est pas connue dans virtual_mailbox_maps.
Le tutorial m'a fait configurer ceci pour virtual_mailbox_maps:
Code:
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
/etc/postfix/mysql_virtual_mailbox_maps.cf:
Code:
1 2 3 4 5
| hosts = 127.0.0.1
user = postfix
password = xxxxxxxxxxxxx
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1 |
Ce qui ne permet pas a postfix de connaitre l'adresse ma-liste-de-diffusion-bounces@reseau.local puisqu'elle est gérer par mailman.
Si je ne me trompe pas dans mon raisonnement, comment faire en sorte que postfix connaisse les adresse de diffusions gérés par mailman ?
Et si je me goure savez vous ce qui cloche ? ^^