J'essaie de configurer Postfix pour la première fois. Je n'ai pas besoin de boîtes aux lettres, je veux seulement des alias virtuels, des redirections info@example.com --> myname@gmail.com
Mon Postfix fonctionne dans un conteneur Docker sur un droplet Digital Ocean.
Je suis allé jusqu'à.. :
$ postalias -q info@example.com
myname@gmail.com
...depuis l'intérieur du conteneur, c'est-à-dire mon /etc/postfix/virtual
fonctionne.
De même, de l'extérieur du récipient, sur la gouttelette :
telnet example.com 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 example.com ESMTP Postfix (Ubuntu)
Mais à partir de mon propre ordinateur :
$ telnet example.com 25
Trying <droplet IP>...
telnet: connect to address <droplet IP>: Operation timed out
telnet: Unable to connect to remote host
Je pense que c'est attendu et correct en raison de l'existence de la mynetworks
(voir ci-dessous) qui est comme le recommande Digital Ocean - Je ne veux pas héberger un relais SMTP "ouvert".
J'ai un enregistrement MX pour example.com.
et je peux ping example.com
et d'accéder à des sites web. Également (depuis mon ordinateur) :
$ host -t mx example.com
example.com mail is handled by 1 example.com.
Cela semble donc correct.
Mais si j'envoie un message test à info@example.com
rien ne passe et je ne vois rien non plus dans les logs de Postfix... Je ne peux pas dire à quel moment il a échoué.
Je ne sais pas si le problème vient de ma configuration Postfix ou du routage dans le conteneur.
Le conteneur expose le port 25 (uniquement) et est exécuté via Fig avec
ports:
- "25:25"
Depuis Shell dans le droplet :
$ netstat -tulpn | grep 25
tcp6 0 0 :::25 :::* LISTEN 10680/docker-proxy
Mon /etc/postfix/main.cf
contient ceci :
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
# 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
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = /etc/mailname, <container id>, localhost.localdomain, localhost, example.com
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
virtual_alias_domains = example.com
virtual_alias_maps = hash:/etc/postfix/virtual
inet_protocols = ipv4
Je ne comprends pas très bien la distinction entre myhostname
(qui était à l'origine fixé à <container id>
) mydestination
y virtual_alias_domains
Mise à jour
avec la sortie de http://mxtoolbox.com/SuperTool.aspx
Connecting to <server IP>
220 example.com ESMTP Postfix (Ubuntu) [733 ms]
EHLO MXTB-PWS3.mxtoolbox.com
250-example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN [714 ms]
MAIL FROM: <supertool@mxtoolbox.com>
250 2.1.0 Ok [722 ms]
RCPT TO: <test@example.org>
454 4.7.1 <test@example.org>: Relay access denied [715 ms]
MXTB-PWS3v2 4006ms
Mise à jour
Comme @masegaloeh m'a aidé à le découvrir, mon serveur postfix fonctionnait normalement. J'ai eu deux problèmes qui ont embrouillé les choses :
-
A cause d'une erreur dans mon fichier Docker, j'avais
/var/log/mail.log
appartenant à l'utilisateur root... c'est pourquoi il est resté vide. Je n'ai pas vu d'erreurs à ce sujet, mais rsyslog n'a pas pu écrire dessus. Achown syslog:adm /var/log/mail.log
Le pas a corrigé cela, et j'ai pu voir que postfix traitait et transférait effectivement le courrier vers l'alias. -
J'ai cru à tort que je pouvais me connecter à d'autres serveurs sur le port 25 à partir de mon ordinateur portable, simplement parce que je pensais avoir fait des choses dans le passé qui nécessitaient cela pour fonctionner. Mais en fait, je ne peux pas. Cependant, j'ai pu
telnet example.com 25
à partir d'un autre serveur, de sorte que, là encore, les choses fonctionnaient réellement. -
L'envoi de courrier à l'alias à partir d'un autre serveur fonctionne et aboutit à mon adresse de destination Gmail.
-
Il semble que mon problème soit en fait lié à Gmail... lorsque j'envoie le message à
info@example.com
à partir de mon compte Gmail, il n'apparaît pas. J'ai depuis essayé avec des alias que j'avais mis en place sur un autre hébergement... certains fonctionnent et d'autres non... ce qui conduit à :
Conclusion :
il semble que Gmail n'accepte que le courrier pour les alias qui sont configurés sous Settings > Accounts and Import > Send mail as
...malheureusement Gmail exige maintenant que l'on spécifie un serveur SMTP tiers lors de la configuration d'un nouveau serveur, il semble donc que je doive me débrouiller avec TLS, etc. dans mon installation de postfix.