OVH Community, votre nouvel espace communautaire.

Liste diffusion : User unknown, Dédié release 3 avec Postfix/Mailman


Zaphod
03/03/2015, 16h25
Bonjour,

en furetant un peu, j'ai trouvé une solution à mon problème.

L'erreur a été résolue en modifiant, dans le fichier /etc/postfix/master.cf, dans la partie "127.0.0.1:10025...", la ligne :

-o receive_override_options

il fallait enlever l'option "no_address_mappings" de cette ligne.

Merci à cassiopee et à ceux qui ont essayé de trouver sans participer

A bientôt

Zaph

Zaphod
18/02/2015, 15h58
Bon, je pense que j'ai du toucher à un fichier de configuration au tout début de l'installation car, par exemple, le répondeur automatique de postfix ne fonctionne pas, et j'en passe...

Du coup, est-ce que quelqu'un sait où je peux trouver les fichiers "main.cf", "master.cf" par défaut d'un release 3 que j'adapterai à mon serveur ?

Merci

Zaph

Zaphod
17/02/2015, 08h15
Bonjour cassiopee,

oui c'est étrange. J'ai pourtant ajouté hash:/etc/mailman/virtual-mailman à "virtual_mailbox_maps" et "virtual_alias_maps". Il devrait donc être en mesure d'aller chercher dedans si la recherche SQL ne donne rien, j'imagine.

Ce qui est encore plus étrange, c'est que je parviens à envoyer des messages à la liste de diffusion depuis une adresse externe (prenom.nom@sfr.fr), donc d'un smtp externe. Le message est correctement routé et distribué aux abonnés de la liste test.

Je résume :

- envoi d'un mail à une liste à partir du serveur, en local : OK
- envoi d'un mail à une liste à partir d'un client distant, mais en passant par le smtp local : PAS OK (user unknown)
- envoi d'un mail à une liste à partir d'un client distant, en passant par un smtp externe : OK

Personne d'autre ne veut perdre son latin avec moi ?

Zaph

cassiopee
17/02/2015, 00h42
N'ayant pas de Release 3, je suis un peu court pour te donner davantage de conseils

Ce qui est un peu étrange, c'est que le message d'erreur fait référence à SQL, ce qui laisserait
penser qu'il va chercher les informations de l'utilisateur uniquement dans une base MySQL
(et non pas également dans les fichiers textes contenant les alias de mailman)

Zaphod
16/02/2015, 09h37
Je remonte le sujet, si jamais quelqu'un a une idée...

J'ai fait une sauvegarde de mes fichiers de conf actuels, et j'essaie des bidouilles pas-à-pas. Mais ça ne donne rien de concluant.

A bientôt

Zaph

Zaphod
13/02/2015, 14h50
Rebonjour Cassiopee,

malheureusement, les modifications que tu as suggéré sont restées sans effet. Toujours exactement le même problème avec le dovecot auth sql qui me renvoie un unknown user.

C'est à s'y arracher les cheveux !

A bientôt

Zaph

Zaphod
13/02/2015, 11h06
J'ai réessayé sans changer ce que tu as préconisé.

En regardant les logs, il semblerait que ce soit un problème avec l'authentification de Dovecot :

Code:
- Feb 13 11:51:04 nsXXXXXXX postfix/smtpd[30144]: NOQUEUE: filter: RCPT from mon.ip.publique.locale: : Recipient address triggers FILTER amavisfeed:[127.0.0.1]:10024; from= to= proto=ESMTP helo=<[mon.ip.privee.locale]>
- Feb 13 11:51:05 nsXXXXXXX amavis[27557]: (27557-17) Passed CLEAN {RelayedInbound}, [mon.ip.publique.locale]:63907 [mon.ip.publique.locale]  -> , Message-ID: <46F72C9A-4ABC-4D76-9A48-2CACDD7E9A2E@domaineprincipal.fr>, mail_id: wN_xRTqEZOeI, Hits: -103, size: 961, queued_as: 4EC2C45C0D, dkim_sd=default:domaineprincipal.fr, 407 ms
- Feb 13 11:51:05 nsXXXXXXX postfix/smtp[30215]: B3ED245BF8: to=, relay=127.0.0.1[127.0.0.1]:10024, delay=0.69, delays=0.27/0.01/0/0.41, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 4EC2C45C0D)
- Feb 13 11:51:05 nsXXXXXXX dovecot: auth: sql(test@domaineprincipal.fr): Unknown user
- Feb 13 11:51:05 nsXXXXXXX postfix/pipe[30219]: 4EC2C45C0D: to=, relay=dovecot, delay=0.08, delays=0.03/0/0/0.04, dsn=5.1.1, status=bounced (user unknown)
Je continue les investigations avec ce que tu m'as suggeré

Zaph

cassiopee
13/02/2015, 10h01
- virtual_mailbox_base = /var/mail/vhosts
Or le fichier /var/mail/vhosts n'existe pas chez moi. Un "ls -l" sur
"/var/mail" me donne la liste de mes domaines virtuels (répertoires)
et des users correspondants (fichiers).
Ce n'est pas censé être un fichier mais bien un répertoire
et c'est bien ce contenu qu'il doit y avoir.

C'est un préfixe en fait, utilisé pour accéder ensuite aux bons fichiers

Cf : http://www.postfix.org/postconf.5.ht...l_mailbox_base

- "virtual_mailbox_maps" et "virtual_alias_maps" semblent n'aller
chercher que dans les tables MySQL. Est-ce que je devrais rajouter
hash:/etc/mailman/virtual-mailman ?
En théorie oui, après est-ce que dans ces tables MySQL il n'y a pas
(ou il ne devrait pas y avoir) les alias prévus pour Mailman ?
Aucune idée. De toute façon, tu peux essayer, puis redémarrer Postfix
et voir si ça change quelque chose ou pas. C'est facilement réversible,
au pire ça ne changera rien.

La vraie question est : qu'est-ce qui explique que
postfix/dovecot/mailman (rayer la mention inutile) trouve le user
lorsque le mail est envoyé depuis le localhost mais pas lorsque le
mail est envoyé depuis l'extérieur ?
Oui, c'est pour ça que je me dis que Mailman doit être bien
configuré (une Release, c'est un peu fait pour ça : ne pas devoir
mettre les mains dans le cambouis) et qu'il doit y avoir
autre chose.

Est-ce que ça ne serait pas :
Code:
myhostname = nsXXXXXXX.ovh.net
qu'il faudrait remplacer par :
Code:
myhostname = domaineprincipal.fr
ou encore

Code:
myhostname = mail.domaineprincipal.fr
où "mail.domaineprincipal.fr" est le nom du MX ?

Voir peut-être également la directive "mydomain".

L'idée étant que le serveur Postfix ne se reconnaitrait pas en tant que
gestionnaire de messagerie pour le nom de domaine "domaineprincipal.fr"
et que du coup il cherche le "test@..." dans le nom de domaine par
défaut "nsXXXX.ovh.net" et là effectivement, il ne le trouve pas.

Zaphod
13/02/2015, 09h45
Et en complément d'information, voici mon fichier /etc/postfix/master.cf :

[CODE]smtp inet n - n - - smtpd
587 inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_tls_auth_only=yes
-o smtpd_tls_cert_file=/etc/pki/tls/certs/localhost.crt
-o smtpd_tls_key_file=/etc/pki/tls/private/localhost.key
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_path=/var/spool/postfix/private/auth
-o smtpd_recipient_restrictions=$external_submission_ restrictions
-o receive_override_options=no_address_mappings
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
-o append_at_myorigin=no
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o smtp_fallback_relay=
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
dovecot unix - n n - - pipe
flags=DRhu user=mailboxes:mailboxes argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
amavisfeed unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookup=yes
-o max_use=20
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,rej ect
-o receive_override_options=no_address_mappings
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o smtpd_restriction_classes=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_ unknown_recipient_checks,no_milters,no_address_map pings
-o local_header_rewrite_clients=
vacation unix - n n - - pipe
flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}[\CODE]

A bientôt

Zaph

Zaphod
13/02/2015, 09h10
Bonjour cassiopee,

d'abord je te remercie de te pencher sur mon problème.

Merci pour les précisions sur les maps dans le main.cf.
Voici d'ailleurs mon main.cf, j'ai pris soin d'enlever les lignes en #... :

Code:
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix

myhostname = nsXXXXXXX.ovh.net
mydomain = myhostname
myorigin = $mydomain
inet_protocols = ipv4
mydestination = localhost.$mydomain, localhost.localdomain
local_recipients_maps = 
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8

alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases
alias_database = hash:/etc/aliases, hash:/etc/mailman/aliases
recipient_delimiter = +
debug_peer_level = 2
debugger_command =
	 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
	 ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix

setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES

smtpd_recipient_restrictions = check_recipient_access mysql:/etc/postfix/sql/mysql_amavis_in.cf, permit_mynetworks, permit_sasl_authenticated, permit_inet_interfaces, reject_unauth_destination
external_submission_restrictions = check_recipient_access mysql:/etc/postfix/sql/mysql_amavis_in.cf, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

virtual_mailbox_domains = mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_mailing.cf
virtual_mailbox_base = /var/mail/vhosts
virtual_uid_maps = static:500
virtual_gid_maps = static:101
virtual_transport = dovecot

virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
transport_maps = hash:/etc/postfix/transport

sender_canonical_maps=hash:/etc/postfix/sender_canonical
dovecot_destination_recipient_limit = 1
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
milter_default_action = accept

smtpd_tls_security_level = may
smtpd_tls_key_file = /etc/pki/tls/private/localhost.key
smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_cache.db
smtpd_tls_auth_only = yes
tls_random_source = dev:/dev/urandom

mailbox_command = /usr/libexec/dovecot/deliver
smtpd_sasl_security_options = 
broken_sasl_auth_clients = yes
A la suite de ce que tu me dis, je m'étonne de plusieurs choses :

- virtual_mailbox_base = /var/mail/vhosts
Or le fichier /var/mail/vhosts n'existe pas chez moi. Un "ls -l" sur "/var/mail" me donne la liste de mes domaines virtuels (répertoires) et des users correspondants (fichiers).

- "virtual_mailbox_maps" et "virtual_alias_maps" semblent n'aller chercher que dans les tables MySQL. Est-ce que je devrais rajouter hash:/etc/mailman/virtual-mailman ?
-----

Il va de soi que j'ai redémarré plusieurs fois postfix, et même dovecot et mailman. J'ai même fait un reboot serveur. Sans succès.

La vraie question est : qu'est-ce qui explique que postfix/dovecot/mailman (rayer la mention inutile) trouve le user lorsque le mail est envoyé depuis le localhost mais pas lorsque le mail est envoyé depuis l'extérieur ?

N'est-ce pas un problème avec les options SMTP ?

A bientôt

Zaph

cassiopee
12/02/2015, 19h50
Dans le fichier "main.cf" de Postfix, il y a plusieurs directives qui servent
à faire le lien entre mailmain et postifx :

- virtual_mailbox_maps (qui permet de déclarer les boîtes aux lettres de mailman)
- alias_maps (qui qui va faire lien entre alias et commande mailman à exécuter)
- virtual_alias_maps (qui fait le lien entre adresse email et alias virtuel local)

Pour la première et la dernière, c'est le répertoire de configuration de mailman que l'on va indiquer
et pour la seconde c'est le fichier "aliases" de mailman, généralement dans le répertoire de
configuration de mailman.

Un exemple :

Code:
virtual_mailbox_maps = hash:/etc/postfix/vmailbox,hash:/home/mailman/data/virtual-mailman
alias_maps = hash:/etc/aliases,hash:/home/mailman/data/aliases
virtual_alias_maps = hash:/home/mailman/data/virtual-mailman
où mailman a été installé dans "/home/mailman".

Le contenu du répertoire "/home/mailman/data" :

Code:
-rw-r-----   1 mailman mailman    41 2007-10-24 23:42 adm.pw
-rw-rw-rw-   1 mailman mailman  2571 2008-01-24 13:58 aliases
-rw-rw-rw-   1 mailman mailman 12288 2008-01-24 13:58 aliases.db
-rw-r--r--   1 mailman mailman    10 2007-10-24 23:19 last_mailman_version
-rw-rw----   1 mailman mailman     6 2014-07-26 00:02 master-qrunner.pid
-rw-r--r--   1 mailman mailman 14114 2007-10-24 23:19 sitelist.cfg
-rw-rw-rw-   1 mailman mailman  2250 2008-01-24 13:58 virtual-mailman
-rw-rw-rw-   1 mailman mailman 12288 2008-01-24 13:58 virtual-mailman.db
Le tout pas dans une Release 3, donc à adapter au niveau des répertoires.

C'est étrange que ça ne fonctionne pas tout seul avec une Release 3.

Peut-être besoin d'un simple redémarrage de Postfix ?

Zaphod
12/02/2015, 09h24
Bonjour à tous,

j'ai récemment migré mon dédié d'une release 2 vers une release 3 suite à un problème de hack.
J'ai donc un serveur que j’appellerai nsXXXXXXX.ovh.net, avec plusieurs domaines virtuels créés, dont domaineprincipal.fr, sur lequel tous mes utilisateurs ont un compte POP.

L'envoi et la réception de mail fonctionnent sans problèmes, en interne comme en externe. Là où ça coince, c'est pour les listes de diffusion avec Mailman.

Je m'explique :

- j'ai créé une liste de diffusion avec l'interface OVHm (sur Webmin)
- je la retrouve bien dans Mailman, je peux l'administrer, y ajouter des adresses.
- J'ai donc créé la liste test@domaineprincipal.fr, avec 2 adresses existantes et fonctionnelles (une interne et une externe en @sfr.fr)
- Lorsque j'envoie un mail à partir de Roundcube (donc en local) le mail part sans souci, et est bien reçu sur les 2 boites, avec l'entête [TEST] de la liste de diffusion.
- Lorsque j'envoie un mail à test@domaineprincipal.fr, à partir de mon client de messagerie, je reçois :

Code:
This is the mail system at host nsXXXXXXX.ovh.net.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                  The mail system

: user unknown
Reporting-MTA: dns; nsXXXXXXX.ovh.net
X-Postfix-Queue-ID: 111C645C08
X-Postfix-Sender: rfc822; expediteur@domaineprincipal.fr
Arrival-Date: Thu, 12 Feb 2015 10:05:14 +0100 (CET)

Final-Recipient: rfc822; test@domaineprincipal.fr
Original-Recipient: rfc822;test@domaineprincipal.fr
Action: failed
Status: 5.1.1
Diagnostic-Code: x-unix; user unknown

Voici le postconf -n :


Code:
alias_database = hash:/etc/aliases, hash:/etc/mailman/aliases
alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_protocols = ipv4
mailbox_command = /usr/libexec/dovecot/deliver
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
milter_default_action = accept
mydestination = localhost.$mydomain, localhost.localdomain
mydomain = myhostname
myhostname = nsXXXXXXX.ovh.net
mynetworks = 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
non_smtpd_milters = inet:localhost:8891
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
recipient_delimiter = +
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_milters = inet:localhost:8891
smtpd_recipient_restrictions = check_recipient_access mysql:/etc/postfix/sql/mysql_amavis_in.cf, permit_mynetworks, permit_sasl_authenticated, permit_inet_interfaces, reject_unauth_destination
smtpd_sasl_security_options = 
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt
smtpd_tls_key_file = /etc/pki/tls/private/localhost.key
smtpd_tls_loglevel = 1
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_cache.db
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_mailing.cf
virtual_gid_maps = static:101
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_domains = mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_transport = dovecot
virtual_uid_maps = static:500
Voici maintenant le /etc/postfix/transport :

Code:
autoreply.nsXXXXXXX.ovh.net      vacation:

Merci, si vous avez une petite idée du problème, de m'éclairer. Moi je sèche depuis un moment

A bientôt

Zaph