Je suis en train d'écrire une application qui envoie un courrier via un ID utilisateur et un mot de passe GMail valides.
Je voulais simplement simuler la connexion SMTP sur ma ligne de commande Windows XP et lorsque je telnet smtp.gmail.com
sur le port 465, je ne vois rien. Une fenêtre de commande vide avec le titre Telnet smtp.gmail.com
s'ouvre avec le curseur. Lorsque je tape EHLO
ou les commandes de négociation SMTP habituelles, l'invite se ferme.
Je suis incapable de comprendre ce qui ne va pas et où. J'ai essayé de me connecter à 587, il ne se connecte pas du tout à telnet. Quelqu'un pourrait-il s'il vous plaît préciser si je fais quelque chose de mal?
Sous Linux ou OSx, suivez les recommandations de Sorin, mais utilisez plutôt le port 465. 25 est le port SMTP générique, mais pas ce que GMail utilise. De plus, je ne crois pas que vous souhaitiez 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 ...
Tapez
HELO smtp.gmail.com
et vous recevrez:
250 mx.google.com at your service
À partir de là, il n’est pas aussi simple d’envoyer des messages SMTP, car Gmail dispose de protections garantissant que vous n’envoyez que des courriels semblant provenir de comptes vous appartenant. Au lieu de taper "Helo", utilisez "Ehlo". Je ne connais pas grand chose au SMTP, je ne peux donc pas expliquer la différence et je n’ai pas le temps de faire beaucoup de recherches. Peut-être que quelqu'un avec plus de connaissances peut expliquer.
Ensuite, tapez "login auth" et vous recevrez ce qui suit:
334 VXNlcm5hbWU6
Il s’agit essentiellement du mot "Nom d’utilisateur" codé en base 64. Vous utilisez un codeur en base 64 tel que celui-ci , pour coder votre nom d’utilisateur et le saisir. Faites la même chose pour votre mot de passe, qui est demandé ensuite. Tu devrais voir:
235 2.7.0 Accepted
Et c'est tout, vous êtes connecté.
Si vous utilisez des terminaux OSx ou Linux, il vous reste une difficulté à surmonter. Le simple fait d'appuyer sur la touche "ENTRÉE" n'entraîne apparemment pas la création d'un CRLF dont SMTP a besoin pour mettre fin à un message. Vous devez utiliser "CTRL + V + ENTER". Donc, cela devrait ressembler à ceci:
^M
.^M
250 2.0.0 OK
Pour le terminal OSX:
openssl s_client -connect smtp.gmail.com:25 -starttls smtp
Gmail exige que les communications SMTP avec leur serveur soient cryptées. Bien que vous établissiez une connexion au serveur Gmail sur le port 465, vous ne pourrez malheureusement pas communiquer avec ce dernier en clair, car Gmail vous oblige à utiliser le cryptage STARTTLS/SSL pour la connexion.
Jadaaih, vous pouvez vous connecter envoyer SMTP via CURL - lien vers Curl Developer Community .
Ceci est Source Curl Email Client .
Essaye ça:
telnet smtp.gmail.com 587
tcp/465 était initialement destiné à établir la couche SSL (et la plus récente TLS), puis à faire des protocoles en clair ou en clair (smtp ici)
tcp/587 était destiné à remplacer le port TCP/25 par défaut initialement lorsque les spammeurs et les attaques par publipostage massif ont commencé il ya une décennie ou plus, mais aussi au cours des tristement célèbres époques AOL, où un drôle de fournisseur d’accès avait des blocs comme tcp/25) pour refuser à leurs propres clients (AOL) d’envoyer en masse des e-mails/spams à l’époque, mais les clients d’AOL devant utiliser des comptes de messagerie alternatifs et des fournisseurs de messagerie toujours nécessaires pour envoyer leurs mails depuis des connexions AOL-Internet , afin qu'ils puissent toujours se connecter à TCP/587 et faire smtp simple dessus à l'époque.
La solution STARTTLS pour utiliser smtp consiste à utiliser les deux ports tcp/25 et tcp/587 à l'origine en texte brut, et uniquement lorsque la connexion en texte clair initiale est réussie, puis à START la couche TLS (donc STARTTLS). à partir de là, ayant une connexion sécurisée à partir de ce point.
En ce qui concerne le débogage de ce genre de choses peut-être via des outils de ligne de commande, par exemple pour Windows, il y a l'historique mailer en ligne de commande blat (smtp), qui jusqu'à présent ne peut pas faire de TLS (STARTTLS), de sorte qu'il envoyer ses mails.
Ensuite, il existe de nombreux projets freeware et logiciels open source qui ont plus de fonctionnalités et de fonctionnalités, telles que
client smtp: mailsend @ googlecode http://code.google.com/p/mailsend/
client smtp: msmtp @ sourceforge (lié à mpop ci-dessous) http://msmtp.sourceforge.net/
client pop3: mpop @ sourceforge http://mpop.sourceforge.net/
Démarrer la session depuis le terminal:
openssl s_client -connect smtp.gmail.com:25 -starttls smtp
La dernière ligne de la réponse doit être "250 SMTPUTF8"
Lancer la connexion
auth login
Cela devrait renvoyer "334 VXNlcm5hbWU6".
Type nom d'utilisateur
Tapez votre nom d'utilisateur en encodage base64 (par exemple, echo -n 'your-username' | base64
)
Cela devrait renvoyer "334 UGFzc3dvcmQ6"
Tapez votre mot de passe
Tapez votre mot de passe en codage base64 (par exemple, echo -n 'your-password' | base64
)
Succès
Vous devriez voir "235 2.7.0 Accepted" et vous êtes connecté avec succès
Vérifiez ce poste dans lifehacker: Geek to Live: Sauvegardez Gmail avec fetchmail . Il utilise un programme en ligne de commande. Vérifiez et voyez si cela aide. BTW, pourquoi utilisez-vous la ligne de commande alors qu’il existe de nombreuses alternatives Nice?
gmail utilise une connexion cryptée. Ainsi, même après avoir établi une connexion, vous ne pourrez envoyer aucun courrier électronique. Le cryptage est un peu complexe à gérer. Essayez plutôt d'utiliser openssl.
Le fil ci-dessous devrait aider
Comment envoyer un email en utilisant de simples commandes SMTP via Gmail?