Le courrier électronique SMTP a cessé de fonctionner il y a 10 jours (curl fonctionne ; le serveur n'a pas de SMTPS)

Salut à tous,

Mon site fonctionne depuis quelques années sans problème. Soudainement, le SMTP a cessé de fonctionner. (Je n’ai apporté aucune modification de configuration sur l’hôte ou dans le conteneur).

J’utilise SMTP (pas SMTPS). Je suis entré dans le conteneur Discourse et j’ai testé que je pouvais envoyer des e-mails en utilisant curl :

curl smtp://mail.example.com --mail-from myself@example.com --mail-rcpt receiver@example.com --upload-file email.txt

Cependant, Discourse n’envoie aucun e-mail et les journaux disent simplement :

Net::ReadTimeout with #<Socket:(closed)>

Les journaux Postfix sur l’hôte disent :

connect from unknown[172.17.0.5]
lost connection after CONNECT from unknown[172.17.0.5]
disconnect from unknown[172.17.0.5] commands=0/0

Quelqu’un a-t-il une idée de ce qui a pu changer ?

Merci d’avance.

GI

PS : Désolé, la première version de ce message a été tronquée par accident et seul la moitié du message a été publiée. Je viens de la modifier.

Salut à tous,

J’ai résolu le problème. Il s’avère que l’hôte impose désormais un délai de 7 secondes sur tous les e-mails entrants (même ceux provenant des conteneurs). Discourse expire par défaut en 5 secondes.
Je l’ai augmenté à 10 secondes dans containers/app.yml :

DISCOURSE_SMTP_OPEN_TIMEOUT: 10
DISCOURSE_SMTP_READ_TIMEOUT: 10

Cela fonctionne maintenant… mais quelqu’un sait-il comment supprimer le délai postfix sur l’hôte ? J’ai cherché dans les fichiers de configuration mais je n’ai rien trouvé…

GI

Si vous utilisez postscreen, consultez postscreen_greet_wait et postscreen_greet_action.

Sinon, cela peut être dû à un délai d’attente DNS lors d’une recherche inversée de l’adresse IP de connexion.

2 « J'aime »

Ha ! Merci beaucoup ! C’était exactement le problème.

Je viens d’ajouter des adresses IP statiques (avec des noms d’hôtes factices) pour toutes les adresses IP que Docker attribue généralement (de 172.17.0.2 à 10). Donc, si mon conteneur obtient une IP différente, j’espère qu’il ne bloquera pas sur la recherche nslookup.

Je me demande s’il existe un moyen pour Docker de résoudre les adresses IP de tous les conteneurs…

Merci encore.

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.