Comment parler au serveur IMAP dans Shell via OpenSSL
Je veux envoyer des commandes IMAP via le Terminal Mac OS X au serveur et obtenir une réponse. Je peux me connecter au serveur en utilisant cette ligne:
openssl s_client -connect imap.gmail.com:993
Et je peux me connecter avec succès:
? LOGIN m.client2 passwordhere
Mais toutes les autres commandes ne fonctionnent pas, aucune réponse du serveur. J'ai essayé par exemple ceci:
? LIST "" "*"
? SELECT INBOX
4 réponses
Trouvé une erreur à l'aide d'un ami:
openssl s_client -connect imap.gmail.com:993 -crlf
-crlf est essentiel
Essayez ceci, cela devrait fonctionner pour vous (remplacez la première ligne par votre
openssl s_client -connect imap.gmail.com:993 -crlf
Commande (obligatoire-crlf) & tapez seulement la partie bleue):
Tout d'abord, imap est-il activé sur votre compte gmail??? si vous êtes en mesure de vous connecter avec succès, cela signifie que ssl fonctionne bien. quel est le code de retour que vous obtenez pour
A1 connexion M. client2 mot de passe ici commande.
Avez-vous essayé la commande
Capacité A1
Essayez d'autres commandes alternatives car tous les serveurs IMAP n'implémentent pas toutes les commandes IMAP. J'ai rencontré ce problème pendant que je créais les outils de migration de données pour différents fournisseurs comme gmail rediffmail yahoo...
Quelques options supplémentaires à considérer: Vous pouvez vous connecter à un serveur offrant STARTTLS
auquel cas vous pouvez dire à openssl de poursuivre la négociation, vous devez spécifier le protocole que vous utilisez (choisissez parmi pop3
, imap
, smtp
, ftp
); l'option -crlf
a été mentionnée par d'autres, et je trouve également l'option -showcerts
utile si je débogue une configuration SSL/TLS. Ainsi, par exemple, vous pourriez vous retrouver avec,
openssl s_client -showcerts -connect target.server.name.here:143 -starttls imap
Plus d'options avec la page de manuel pertinente si vous avez cela disponible,
man s_client