O simples envio do comando STARTTLS
não coloca a conexão no modo TLS. Você precisa negociar e implementá-lo corretamente .
Estou tentando usar o SMTP para enviar e-mails para minha conta em algum servidor (por exemplo, no Gmail).
Até agora eu tentei:
220 mx.google.com ESMTP y14sm3079810ibf.45
HELO
250 mx.google.com at your service
STARTTLS
220 2.0.0 Ready to start TLS
AUTH LOGIN
Connection closed by foreign host.
O que estou fazendo de errado e como posso corrigi-lo, então envio um email como se eu fosse meu próprio servidor?
O simples envio do comando STARTTLS
não coloca a conexão no modo TLS. Você precisa negociar e implementá-lo corretamente .
O Gmail exige o TLS para enviar e-mails em seu nome. Esse tipo de conexão é necessário quando o seu cliente de e-mail de área de trabalho ou móvel está enviando e-mails da sua conta do Gmail.
No entanto, qualquer servidor de correio normal ainda aceitará uma mensagem para um destinatário nesse servidor sem usar TLS ou qualquer tipo de autenticação. Por exemplo, você pode se conectar a gmail-smtp-in.l.google.com
na porta 25 e realizar uma sessão SMTP não criptografada.
Supondo que você seja [email protected], você está conectado ao seu servidor de e-mail mail.mydomain.com, e está enviando uma mensagem para você@seudominio.com, é assim:
dig yourdomain.com mx
e observe os resultados (digamos que é mail001.seudomínio.com) telnet mail001.yourdomain.com 25
HELO mail.mydomain.com
MAIL FROM: [email protected]
RCPT TO: [email protected]
RCPT TO: [email protected]
DATA
From: "Mehrdad" <[email protected]>
To: "Enrique Peñalosa" <[email protected]>
Cc: "Gabriela Peñalosa" <[email protected]>
Date: Fri, 30 Sep 2011 11:21:19 -0700
Subject: Thanks for all the fish!
It was a wonderful picnic. I really enjoyed the salmon burgers.
See you next week,
Mehrdad
.
Advertências:
Para saber mais, consulte o artigo da Wikipédia .
Você emitiu o comando HELO
para seu servidor SMTP. Isso informa que você deseja usar os comandos SMTP originais. STARTTLS
não é um desses comandos, portanto, você não deve poder usar STARTTLS
.
A primeira etapa para resolver isso é alternar do comando HELO
para o comando EHLO
. Ao fazer isso, você verá que o servidor SMTP responde com o conjunto de extensões SMTP que ele suporta. Espero que STARTTLS
seja listado.
Aqui está uma conversa com o servidor SMTP do GMail:
CLIENT: EHLO me.example.com
SERVER: 250-mx.google.com at your service
SERVER: 250-SIZE 35882577
SERVER: 250-8BITMIME
SERVER: 250-STARTTLS
SERVER: 250 ENHANCEDSTATUSCODES
CLIENT: STARTTLS
SERVER: 220 2.0.0 Ready to start TLS
<negotiation begins here...>
Tags smtp