ti-enxame.com

Conectando-se ao smtp.gmail.com via linha de comando

Eu estou no processo de escrever um aplicativo que envia e-mail através de um ID de usuário e senha válidos do GMail.

Eu só queria simular a conexão SMTP na minha linha de comando do Windows XP, e quando eu telnet smtp.gmail.com na porta 465 - eu não vejo nada. Uma janela de comando em branco com o título Telnet smtp.gmail.com abre com o cursor. Quando eu digito EHLO ou comandos usuais de handshake SMTP, o Prompt apenas fecha. 

Eu sou incapaz de descobrir o que está errado e onde. Eu tentei ligar para 587, ele não se conecta no telnet em tudo. Alguém poderia, por favor, esclarecer se estou fazendo algo errado?

35
Abhishek

Usando Linux ou OSx, faça o que Sorin recomendou, mas use a porta 465. 25 é a porta SMTP genérica, mas não o que o GMail usa. Além disso, não acredito que você queira usar -starttls smtp

openssl s_client -connect smtp.gmail.com:465

Você deve obter muitas informações sobre a sessão SSL e a resposta: 

220 mx.google.com ...

Digitar 

HELO smtp.gmail.com 

e você receberá: 

250 mx.google.com at your service

A partir daí, não é tão simples como enviar mensagens SMTP porque o Gmail tem proteções para garantir que você só envia e-mails que parecem ser de contas que realmente pertencem a você. Em vez de digitar "Helo", use "Ehlo". Eu não sei muito sobre SMTP, então não posso explicar a diferença e não tenho tempo para pesquisar muito. Talvez alguém com mais conhecimento possa explicar. 

Em seguida, digite "auth login" e você receberá o seguinte: 

334 VXNlcm5hbWU6

Este é essencialmente o Word "Username" codificado em Base 64. Usando um codificador Base 64 como este , codifique seu nome de usuário e insira-o. Faça o mesmo com a sua senha, que é solicitada em seguida. Você deveria ver: 

235 2.7.0 Accepted

E é isso, você está logado.

Há mais uma esquisitice a superar se você estiver usando terminais OSX ou Linux. Basta pressionar a tecla "ENTER" aparentemente não resultar em um CRLF que o SMTP precisa encerrar uma mensagem. Você tem que usar "CTRL + V + ENTER". Então, isso deve se parecer com o seguinte: 

^M
.^M
250 2.0.0 OK
47
the911s

Para o terminal do OSX:

openssl s_client -connect smtp.gmail.com:25 -starttls smtp 
7
Sorin Buturugeanu

O Gmail exige que a comunicação SMTP com o servidor seja criptografada. Embora você esteja abrindo uma conexão com o servidor do Gmail na porta 465, infelizmente não será possível se comunicar com ele em texto sem formatação, já que o Gmail exige que você use a criptografia STARTTLS/SSL para a conexão.

5
Jez

Jadaaih, você pode se conectar enviar SMTP através do link CURL - Curl Developer Community

Esta é a fonte do Curl Email Client .

4
Jasmin25

Tente isto:

telnet smtp.gmail.com 587
3
none

o tcp/465 foi inicialmente planejado para estabelecer a camada SSL (e TLS mais nova) primeiro, e dentro de fazer um texto claro ou protocolos antigos (smtp aqui)

o tcp/587 foi planejado como um substituto para a porta tcp/25 inicialmente quando spammers e ataques em massa começavam como uma década ou mais atrás, mas também durante aquelas infames idades da AOL, quando alguns provedores engraçados tinham alguns bloqueios em portas padrão de saída (como como tcp/25) por negar a seus próprios clientes (AOL) enviar e-mails/spam em massa, mas os clientes da AOL que precisam usar contas de e-mail alternativas e provedores de e-mail ainda precisam enviar seus e-mails das conexões da AOL-internet , então eles ainda poderiam se conectar ao tcp/587 e fazer um simples smtp nele naquela época.

O modo como o STARTtLS faz o smtp é usar as duas conhecidas portas tcp/25 e tcp/587 de texto simples, e somente quando a conexão de texto claro inicial tiver sido obtida, para INICIAR a camada TLS (assim STARTTLS) a partir daí, tendo uma conexão segura a partir daquele momento.

Quanto à depuração desse tipo de coisa, talvez através de ferramentas de linha de comando, por exemplo, para janelas, existe o mailer (smtp) de linha de comando blat histórico, que até hoje não pode usar TLS (STARTTLS) para usar somente SMTP. envie seus e-mails.

http://www.blat.net/

Depois, há inúmeros projetos freeware e software de código aberto que têm mais recursos e recursos, como

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

cliente smtp: msmtp @ sourceforge (relacionado ao mpop abaixo) http://msmtp.sourceforge.net/

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

2
abittner

Iniciar sessão do terminal:

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

A última linha da resposta deve ser "250 SMTPUTF8"

Iniciar login

auth login

Isso deve retornar "334 VXNlcm5hbWU6".

Digite o nome de usuário

Digite seu nome de usuário na codificação base64 (por exemplo, echo -n 'your-username' | base64)

Isso deve retornar "334 UGFzc3dvcmQ6"

Digite a senha

Digite sua senha na codificação base64 (por exemplo, echo -n 'your-password' | base64)

Sucesso

Você deve ver "235 2.7.0 Aceito" e você está logado com sucesso

2
sqren

Verifique este post no lifehacker: Geek to Live: Faça o backup do Gmail com o fetchmail . Ele usa um programa de linha de comando. Verifique e veja se isso ajuda. BTW por que você está usando a linha de comando quando existem muitas outras alternativas de Nice?

2
Shoban

o Gmail usa uma conexão criptografada. Assim, mesmo depois de estabelecer uma conexão, você não poderá enviar nenhum email. A criptografia é um pouco complexa para gerenciar. Tente usar o openssl.

O tópico abaixo deve ajudar-

Como enviar e-mails usando comandos SMTP simples via Gmail?

0
dark3viL