Commençons par le début. J'ai deux serveurs VPS identiques avec Ubuntu 18.04 OS et Monit installé sur les deux. J'ai configuré mailserver sur la configuration de monit (pour l'envoi d'alertes) en tant que localhost sur les deux. Le problème est que sur un serveur tout fonctionne bien et sur l'autre je reçois une erreur : NOQUEUE : reject : RCPT de localhost [127.0.0.1] : 550 5.1.1 : L'adresse du destinataire est rejetée : Utilisateur inconnu dans la table des alias virtuels
Je n'ai pas configuré Dovecot et Postfix spécialement, donc cela devrait fonctionner avec les configurations par défaut. J'ai comparé les configurations du serveur postfix qui fonctionne et du serveur postfix qui ne fonctionne pas et il semble qu'elles soient plus ou moins les mêmes. Les voici :
Serveur de travail :
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2
# 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
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = sub.domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, sub.domain.com, localhost.domain.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
inet_protocols = all
virtual_alias_maps = hash:/etc/postfix/virtual
sender_bcc_maps = hash:/etc/postfix/bcc
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtp_tls_security_level = may
allow_percent_hack = no
et sur ce serveur tout fonctionne bien sans rien configurer de plus, juste en mettant localhost comme mailserver dans la configuration de monit.
Le serveur ne fonctionne pas :
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = no
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2
# TLS parameters
smtpd_tls_cert_file = /etc/postfix/postfix.cert.pem
smtpd_tls_key_file = /etc/postfix/postfix.key.pem
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = sub2.domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, sub2.domain.com, localhost.domain.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
inet_protocols = all
virtual_alias_maps = hash:/etc/postfix/virtual
sender_bcc_maps = hash:/etc/postfix/bcc
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtp_tls_security_level = dane
allow_percent_hack = no
smtpd_tls_CAfile = /etc/postfix/postfix.ca.pem
smtpd_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
Ce serveur génère l'erreur mentionnée ci-dessus.
Le courrier de destination a un domaine différent de celui de ces serveurs et la boîte aux lettres se trouve dans Google. Après avoir vérifié nslookup NX, il semble que le problème soit résolu correctement :
Non-authoritative answer:
maildomain.com mail exchanger = 5 alt2.aspmx.l.google.com.
maildomain.com mail exchanger = 10 alt4.aspmx.l.google.com.
maildomain.com mail exchanger = 10 alt3.aspmx.l.google.com.
maildomain.com mail exchanger = 5 alt1.aspmx.l.google.com.
maildomain.com mail exchanger = 1 aspmx.l.google.com.
Une autre chose est que sur le serveur qui ne fonctionne pas, il y a apache avec le site web configuré maildomain.com et je pense qu'il peut confondre un serveur pour envoyer du courrier électronique. Il est possible qu'il ne recherche qu'une adresse mail localement et qu'il reçoive cette erreur : RCPT de localhost [127.0.0.1] : 550 5.1.1 : L'adresse du destinataire est rejetée : Utilisateur inconnu dans la table des alias virtuels
Je ne sais pas si j'ai une idée sur la façon de le faire fonctionner et sur ce qui pourrait être défectueux, mais c'est parfait. Je vous remercie d'avance !