Je travaille sur une application embarquée (exécutant MQX RTOS, écrite en C) qui a la fonctionnalité SMTP. Récemment, le support TLS a été ajouté en utilisant la bibliothèque Mocana NanoSSL. Je suis actuellement en mesure d'envoyer des courriels avec succès via Gmail, Yahoo et les serveurs d'échange privés. Malheureusement, Hotmail ne fonctionne pas. Voici les paramètres de connexion que j'ai utilisé:Echec de la connexion Hotmail/Outlook.com sur les commandes AUTH
Serveur: smtp.live.com
Port: 25 et 587
méthode AUTH: PLAIN et LOGIN
Fondamentalement, je suis en mesure de Connectez-vous au serveur avec succès, effectuez la liaison SSL/TLS (en utilisant STARTTLS) et envoyez le message EHLO chiffré au serveur (en recevant une réponse). Selon cette réponse, le serveur prend en charge à la fois AUTH PLAIN et AUTH LOGIN. Toutefois, une fois que j'envoie l'une de ces commandes, l'appel SSL_recv() suivant que je fais pour obtenir la réponse échoue avec un délai d'expiration ou connection reset by peer
. OK, donc après quelques expériences, il semblerait que mon problème se situe au niveau de la bibliothèque SSL et non pas avec le serveur SMTP de Microsoft. J'ai essayé de remplacer les appels SSL_recv() par des appels standard recv() RTCS socket et j'ai pu recevoir et afficher des données cryptées. En désactivant la vérification de mes réponses, j'ai ensuite pu continuer le processus SMTP et envoyer un message avec succès. À ce moment je ne suis pas sûr pourquoi les appels de SSL_recv() sont incapables d'obtenir les données de douille, mais je continuerai à creuser et j'espère trouver une réponse.
Parfois, les serveurs de messagerie abandonnent simplement les connexions au lieu d'être polis afin de réduire le temps perdu sur les robots de spam. Cela indique probablement une légère erreur dans le message reçu n'étant pas 100% à la norme. –
Le problème semble maintenant être dans la pile SSL quelque part. J'ai désactivé ma vérification de réponse et j'ai supprimé les appels SSL_recv (en les remplaçant par des appels RTCS recv()), et maintenant tout fonctionne. Cela signifie qu'il a fonctionné tout le long, et que ce sont les appels à SSL_recv qui ont échoué et pas le serveur de messagerie. Je mettrai à jour ce problème avec d'autres informations au fur et à mesure. – Hippopatimus