Назад | Перейти на главную страницу

Как использовать SMTP для отправки почты на какой-то хост?

Я пытаюсь использовать 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, это выглядит так:

  1. dig yourdomain.com mx и обратите внимание на результаты (скажем, mail001.yourdomain.com)
  2. telnet mail001.yourdomain.com 25
  3. Доставить сообщение:
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

.

Предостережения:

  1. Backspace не работает в сеансе SMTP! Вы должны быть сервером, а серверы не делают опечаток. Если вы экспериментируете вручную, гораздо лучше составить входные данные заранее, чтобы вы могли скопировать и вставить каждую строку из текстового редактора.
  2. Поскольку ваши сообщения не обязательно будут выглядеть так, как будто они поступают с настоящего почтового сервера - например, принимающий сервер может проверять такие вещи, как ваши обратные записи DNS и SPF - вы можете случайно столкнуться с защитой от спама на принимающей стороне. В случае такого назначения, как Gmail, ваше сообщение почти гарантированно будет обнаружено как подделка и отправлено прямо в папку для спама.

Чтобы узнать больше, см. Статья в Википедии.

Вы выпустили 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...>