Se connecter à smtp.gmail.com via ligne de commande

je suis en train d'écrire une application qui envoie du courrier via un ID utilisateur et mot de passe GMail valide.

je voulais juste simuler la connexion SMTP sur ma ligne de commande Windows XP, et quand je telnet smtp.gmail.com au port 465 - Je ne vois rien. Une fenêtre de commande vide avec le titre Telnet smtp.gmail.com s'ouvre avec le curseur. Quand je tape EHLO ou les commandes habituelles SMTP handshake, l'invite se ferme.

je suis incapable de comprendre ce qui se passe mal et où. J'ai essayé de me connecter au 587, Il ne se connecte pas du tout dans telnet. Quelqu'un pourrait-il préciser si je fais quelque chose de mal?

34
demandé sur Ian Stapleton Cordasco 2009-10-04 20:04:46

9 réponses

en utilisant Linux ou OSx, faites ce que Sorin a recommandé mais utilisez le port 465 à la place. 25 est le port SMTP générique, mais pas ce que GMail utilise. Aussi, je ne crois pas que vous voulez utiliser-starttls smtp

openssl s_client -connect smtp.gmail.com:465

vous devriez obtenir beaucoup d'informations sur la session SSL et la réponse:

220 mx.google.com ...

Type

HELO smtp.gmail.com 

et vous recevrez:

250 mx.google.com at your service

de là, il n'est pas tout à fait comme simple comme simplement envoyer des messages SMTP parce que Gmail a des protections en place pour vous assurer que vous envoyez seulement des e-mails semblant être à partir de comptes qui vous appartiennent réellement. Au lieu de taper "Helo", utilisez "Ehlo". Je ne connais pas grand-chose au SMTP, donc je ne peux pas expliquer la différence, et je n'ai pas le temps de faire des recherches. Peut-être que quelqu'un avec plus de connaissances peut expliquer.

ensuite, tapez "auth login" et vous recevrez ce qui suit:

334 VXNlcm5hbWU6

il s'agit essentiellement du mot" Username " codé en base 64. En utilisant un encodeur de base 64 tel que celui-ci , encodez votre nom d'utilisateur et entrez-le. Faites de même pour votre mot de passe qui est demandé suivant. Vous devriez voir:

235 2.7.0 Accepted

et c'est tout, vous êtes connecté.

il y a une autre bizarrerie à surmonter si vous utilisez des terminaux OSx ou Linux. Il ne suffit pas d'appuyer sur la touche "Entrée" pour obtenir un CRLF quel SMTP doit mettre fin à un message. Vous devez utiliser "CTRL+V+ENTER". Donc, cela devrait ressembler à ce qui suit:

^M
.^M
250 2.0.0 OK
44
répondu the911s 2018-08-18 17:00:31

pour le terminal D'OSX:

openssl s_client -connect smtp.gmail.com:25 -starttls smtp 
7
répondu Sorin Buturugeanu 2016-07-10 11:39:41

Gmail exigent la communication SMTP avec leur serveur pour être crypté. Bien que vous soyez en train d'ouvrir une connexion au serveur Gmail sur le port 465, malheureusement vous ne pourrez pas communiquer avec lui en clair puisque Gmail vous demande d'utiliser le cryptage STARTTLS/SSL pour la connexion.

5
répondu Jez 2009-10-04 16:08:05

Jadaaih, vous pouvez connecter envoyer SMTP par CURL - lien vers Curl Developer Community .

C'est Curl Client de Messagerie source .

4
répondu Jasmin25 2009-10-04 16:20:48

essayez ceci:

telnet smtp.gmail.com 587
4
répondu none 2011-11-09 19:32:03

Vérifier ce post dans lifehacker : Geek de Vivre: sauvegarder Gmail avec fetchmail . Il utilise un programme en ligne de commande. Vérifier et voir si ça aide. BTW pourquoi utilisez-vous la ligne de commande alors qu'il existe de nombreuses autres alternatives intéressantes?

2
répondu Shoban 2009-10-04 17:36:48

tcp / 465 a été initialement prévu pour établir la couche SSL(et plus récent TLS) d'abord, et à l'intérieur de faire cleartext ou simple Vieux protocoles (smtp ici)

tcp / 587 était destiné à remplacer le port tcp/25 par défaut au début lorsque les attaques de spammeurs et de mailing de masse ont commencé il y a une dizaine d'années ou plus, mais aussi pendant ces périodes d'exploitation tristement célèbres, quand certains FAI drôles avaient des blocages sur les ports par défaut sortants (comme celui tcp/25) pour refuser leurs propres clients (AOL) pour envoyer des e-mails/spam de masse à l'époque, mais AOL-les clients ayant besoin d'utiliser des comptes de courrier alternatifs et les fournisseurs de courrier encore nécessaire d'envoyer leurs e-mails à partir de AOL-connexions internet, afin qu'ils puissent toujours se connecter à tcp/587 et faire smtp simple sur elle à l'époque.

le deal avec la façon STARTTLS de faire smtp est d'utiliser les deux ports tcp/25 et tcp/587 à l'origine en clair bien connus, et seulement lorsque la connexion initiale en clair a réussi, pour ensuite démarrer la couche TLS (ainsi STARTTLS) à partir de là, ayant une connexion sécurisée à partir de ce point.

quant au débogage de ce genre de choses peut-être via des outils en ligne de commande, par exemple pour windows il y a l'historique blat command line mailer (smtp), qui jusqu'à aujourd'hui cant do TLS (STARTTLS) de sorte qu'il ne peut utiliser smtp en clair pour envoyer ses mails.

http://www.blat.net/

puis il ya de nombreux projets freeware et ouvert logiciel source qui ont plus de capacités et de fonctionnalités, telles que

client smtp: mailsend @ googlecode http://code.google.com/p/mailsend/

client smtp: msmtp @ sourceforge (en rapport avec mpop ci-dessous)) http://msmtp.sourceforge.net/

client pop3: mpop @ sourceforge http://mpop.sourceforge.net/

2
répondu abittner 2014-01-09 15:14:10

Démarrer la session de terminal:

openssl s_client -connect smtp.gmail.com:25 -starttls smtp

la dernière ligne de la réponse doit être "250 SMTPUTF8 "

Lancer de connexion

auth login

Ce devrait revenir "334 VXNlcm5hbWU6".

"151950920 de Type" nom d'utilisateur

Tapez votre nom d'utilisateur dans l'encodage base64 (eg. echo -n 'your-username' | base64 )

Ce devrait revenir "334 UGFzc3dvcmQ6"

"151950920 de Type" mot de passe

Tapez votre mot de passe dans l'encodage base64 (par ex. echo -n 'your-password' | base64 )

Succès

vous devriez voir "235 2.7.0 Accepted" et vous êtes connecté avec succès

2
répondu sqren 2018-06-13 14:04:07

gmail utilise une connexion cryptée. Ainsi, même après avoir établi une connexion, vous ne pourrez pas envoyer d'e-mail. Le cryptage est un peu complexe à gérer. Essayez d'utiliser openssl à la place.

le fil ci-dessous devrait aider -

comment envoyer un e-mail en utilisant des commandes SMTP simples via Gmail?

0
répondu dark3viL 2017-05-23 12:34:09