2 votes

Comment déboguer un problème IMAP ?

Je suis en train de mettre en place un serveur de messagerie avec Postfix et Dovecot. Les clients de messagerie distants peuvent lire les e-mails, mais ne peuvent pas y répondre ou envoyer de nouveaux messages. (Les clients de messagerie locaux au serveur reçoivent et envoient des e-mails très bien.) Par exemple, Alpine essaie jusqu'à ce qu'on lui dise d'abandonner, quand il dit "Erreur d'envoi : SMTP greeting failure 421 SMTP connection went away".

Lorsque je lance alpine -d 4, la sortie de débogage montre :

=== sending:
Sending mail...
call_mailer: via TCP
IMAP 11:34:01 9/14 mm_log babble: Try IP address [xx.xx.xxx.xxx]
IMAP DEBUG 11:34:02 9/14: * OK Dovecot ready
tcptimeout: waited 15 seconds
tcptimeout: waited 30 seconds
. . . .

Pour moi, cela suggère un problème sur le serveur entre Dovecot et Postfix. Mais je n'arrive pas à trouver comment le diagnostiquer.

Le syslog du serveur indique une connexion imap réussie, mais aucun des journaux (distant ou client) ne semble avoir d'informations sur l'échec de l'envoi du message.

Il y a de fortes chances pour que je me sois trompé dans la configuration de Postfix ou de Dovecot (SSL / TLS ? SASL ?) J'aimerais résoudre ce problème sans avoir à deviner sans cesse. Alors, s'il vous plaît : Quel est un bon processus pour déboguer cela ?
Comment puis-je tester les interactions entre les différents processus afin de trouver celui qui échoue ?
Existe-t-il un moyen d'augmenter la sortie de débogage / journalisation de Postfix et Dovecot ?
Existe-t-il un moyen d'émuler l'interaction Dovecot / Postix, et / ou la connexion client distant / serveur IMAP, afin que je puisse voir si celles-ci se déroulent comme prévu ?

Merci.

2voto

Salamander2007 Points 2242

Je suggère également que c'est un problème de postfix, quelle est la sortie de :

postconf -n

et

tail -n 50 /var/log/maillog (mail.log on ubuntu boxes)

1voto

Bart Silverstrim Points 31022

Êtes-vous sûr d'avoir un programme de messagerie SMTP en cours d'exécution, c'est-à-dire que vous pouvez vous connecter à votre serveur de messagerie sur le port 25 et obtenir une réponse ?

0 votes

Désolé, est-ce que vous utilisez à la fois le SSL et l'envoi en clair ? Quoi qu'il en soit, vous pouvez essayer d'exécuter tcplist/sockstat/netstat pour savoir quels programmes écoutent quels ports afin de vous assurer que postfix écoute le port sur lequel vous essayez d'envoyer.

0 votes

Oui. $ telnet mail.example.net 25 -> 220 mail.example.net ESMTP Postfix (Debian/GNU)

0 votes

Les clients, comment sont-ils configurés pour envoyer du courrier ? SMTP ordinaire ?

0voto

Rikalous Points 2996

Tout d'abord, je commencerais par diviser cette question en 2 problèmes. IMAP est géré par Dovecot. Si vous êtes en mesure de recevoir vos messages du serveur, alors Dovecot n'est pas le problème, il fait son travail.

L'envoi du courrier se fait avec Postfix. Vous avez dit "les clients de messagerie locaux au serveur reçoivent et envoient des e-mails sans problème". - Cela m'a indiqué que vos clients de messagerie ne s'authentifient peut-être pas auprès du serveur Postfix sur le port 25, ou qu'il n'écoute pas sur vos interfaces externes sur le port 25. Comme Bart l'a mentionné, essayez de vous connecter par telnet au port 25 et voyez si vous obtenez la bannière Postfix. Si c'est le cas, assurez-vous que vos clients s'authentifient (et que vous avez configuré Postfix pour qu'il autorise l'authentification) afin qu'ils puissent envoyer du courrier via votre serveur.

0 votes

J'obtiens une bannière Postfix lorsque je me connecte au port 25. netstat montre un processus "master" écoutant ce port.

0 votes

"Assurez-vous que vos clients s'authentifient" - comment dois-je faire ? Je ne vois pas d'échec d'authentification dans les journaux du serveur. Je les obtiens lorsque j'exécute Alpine et que je donne un mauvais mot de passe de compte serveur.

0 votes

On les reçoit quand on vérifie le courrier, non ? Alpine peut accéder à la fois à imap et à smtp. Je désactiverais tout SSL que vous avez mis en place, puis je dépannerais en utilisant telnet sur le port 25, pour voir si vous obtenez la bannière, et envoyer un message à partir de là (en utilisant AUTH ou non).

0voto

Vous pouvez prétendre d'être un client en lisant les documents pertinents RFC (notamment autour de la section 4) et en se faisant passer pour un client de messagerie. Désactivez d'abord toutes les configurations SSL/TLS pour voir si vous êtes en mesure d'envoyer du courrier correctement. Puis, réactivez-les et utilisez telnet-ssl o openssl client pour se connecter aux ports SSL à la place.

De plus, vous devez savoir clairement s'il y a des problèmes de local ou la distribution externe du courrier. S'il s'agit d'une distribution locale, vous devez vérifier comment cela se passe en postfix . Un moyen commun serait de faire passer la distribution du courrier local par le biais de procmail mais il est également possible de l'acheminer vers dovecot et vous devez vous assurer que la tuyauterie fonctionne correctement. Vérifiez les registres.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X