При отправке email из командной строки с помощью telnet по протоколу SMTP синтаксис команд будет одинаков для Windows и Unix-like систем.
telnet mail.emailserver.ru 25
Ответ почтового сервера должен быть примерно таким :
telnet mail.emailserver.ru 25
Trying 195.116.236.2...
Connected to mail.emailserver.ru (195.116.236.2).
Escape character is '^]'.
220 mail.emailserver.ru ESMTP Postfix (Debian/GNU)
Клиент передает на сервер строку команда<пробел>параметры<перевод строки>
Сервер отвечает на каждую команду строкой, содержащей код ответа и текстовое сообщение, отделенное пробелом.
Код ответа — число от 100 до 999, представленное в виде строки, трактующийся следующим образом:
2ХХ — команда успешно выполнена
3XX — ожидаются дополнительные данные от клиента
4ХХ — временная ошибка, клиент должен произвести следующую попытку через некоторое время
5ХХ — неустранимая ошибка
Текстовая часть ответа носит справочный характер и предназначен для человека, а не программы.
Здороваемся :
helo mail.emailserver.ru
250 mail.emailserver.ru
Команда от кого MAIL FROM :
mail from:me@mydomain.ru
250 Ok
Иногда может потребоваться вводить в скобках в виде <me@mydomain.ru>, если сервер хочет видеть адрес отправителя в виде Sidorov<sidorov@mail.ru>
Команда кому RCPT TO :
rcpt to:you@emailserver.ru
250 Ok
Иногда может потребоваться вводить в скобках в виде <you@emailserver.ru>, если сервер хочет видеть адрес получателя в виде Ivanov<ivanov@hotmail.com>
Команда DATA :
data
354 End data with <CR><LF>.<CR><LF>
Заполнение тела письма :
Тело письма считается заполненым и письмо становится в очередь на отправку на почтовом сервере после того, как в новой строке введена ТОЧКА и после нее нажата клавиша ENTER
subject:Telnet test
to:Ivan Ivanov<you@emailserver.ru>
from:Dmitry<me@mydomain.ru>
X-Mailer: telnet sessionBody of the email...
.
250 Ok: queued as 4DDFB180CDA
Команда QUIT :
quit
221 Bye
Connection closed by foreign host.
Отсутствие заполненного поля TO в теле письма иногда приводит к срабатыванию спам-фильтра с сообщением undisclosed-recipients
Ситуация RELAY ACCESS DENIED
telnet mail.emailserver.ru 25
Trying 195.116.236.2...
Connected to mail.emailserver.ru (195.116.236.2).
Escape character is '^]'.
220 mail.emailserver.ru ESMTP Postfix (Debian/GNU)
helo mail.emailserver.ru
250 mail.emailserver.ru
mail from:someone@somewhere.ru
250 Ok
rcpt to:someoneelse@hotmail.com
554 <someoneelse@hotmail.com>: Relay access denied
quit
221 Bye
Connection closed by foreign host.
Расширения ESMTP
RFC 1869 предписывает начинать сессию не командой HELO, а командой EHLO. Если сервер поддерживает ESMTP, то кроме приветствия он сообщит список поддерживаемых расширений протокола SMTP, например:
ehlo mail.emailserver.ru
250-mail.emailserver.ru is pleased to meet you
250-DSN
250-SIZE
250-STARTTLS
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5 GSSAPI MSN NTLM
250-ETRN
250-TURN
250-ATRN
250-NO-SOLICITING
250-HELP
250-PIPELINING
250 EHLO
В случае, если сервер не поддерживает расширений, то он ответит на EHLO ошибкой, в этом случае клиент должен послать команду HELO и не использовать расширения протокола.
| Пн | Вт | Ср | Чт | Пт | Сб | Вс |
|---|---|---|---|---|---|---|
| « Июл | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||
Комментариев нет