Я пытаюсь использовать SMTP для отправки почты в мою учетную запись на каком-то сервере (например, в Gmail).
Пока я пробовал:
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.
Что я делаю не так и как это исправить, чтобы я отправлял электронное письмо, как если бы я был собственным сервером?
Просто отправив STARTTLS
команда не переводит соединение в режим TLS. Ты должен договориться и реализовать это должным образом.
Gmail требует TLS для реле почта от вашего имени. Этот тип подключения необходим, когда ваш настольный или мобильный почтовый клиент отправляет почту из вашей учетной записи Gmail.
Однако любой нормальный почтовый сервер все равно будет принимать сообщение. к получатель на этом сервере без использования TLS или какой-либо аутентификации. Например, вы можете подключиться к gmail-smtp-in.l.google.com
на порт 25 и провести незашифрованный сеанс SMTP.
Предполагая, что вы me@mydomain.com, вы вошли на свой почтовый сервер mail.mydomain.com и отправляете сообщение на адрес you@yourdomain.com, это выглядит так:
dig yourdomain.com mx
и обратите внимание на результаты (скажем, mail001.yourdomain.com)telnet mail001.yourdomain.com 25
HELO mail.mydomain.com
MAIL FROM: me@mydomain.com
RCPT TO: you@yourdomain.com
RCPT TO: yourmom@yourdomain.com
DATA
From: "Mehrdad" <me@mydomain.com>
To: "Enrique Peñalosa" <you@yourdomain.com>
Cc: "Gabriela Peñalosa" <yourmom@yourcomain.com>
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
.
Предостережения:
Чтобы узнать больше, см. Статья в Википедии.
Вы выпустили HELO
на ваш SMTP-сервер. Это говорит о том, что вы хотите использовать исходные команды SMTP. STARTTLS
не является одной из этих команд, поэтому вы не сможете использовать STARTTLS
.
Первый шаг в решении этой проблемы - переключиться с HELO
команда к EHLO
команда. Когда вы это сделаете, вы увидите, что SMTP-сервер отвечает набором SMTP-расширений, которые он поддерживает. С надеждой, STARTTLS
будут перечислены.
Вот разговор с SMTP-сервером 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...>