
help
500 unrecognized command
vrfy kalashnikoff
500 unrecognized command
expn kalashnikoff
500 unrecognized command
rcpt to:kalashnikoff@mail.ru
503 sender not yet given
data
503 MAIL command must precede DATA
mail from:kalashnikoff
501 kalashnikoff: sender address must contain a domain
mail from:kalashnikoff@itstep.org
250 OK
rcpt to:kalashnikoff@itstep.org
550 must be local recipient
rcpt to:kalashnikoff
501 kalashnikoff: recipient address must contain a domain
Проанализируем: для начала проверяем, является ли обязательным для
данного сервера использование команды HELO/EHLO, убеждаемся, что является
обязательным. Проверим, принимает ли сервер команду HELO без аргументов,
убеждаемся, что не принимает. Проверяем, поддерживает ли данный сервер
команды HELP, VRFY, EXPN, убеждаемся, что сервер этих команд не
поддерживает. Проверяем реакцию на неверную совокупность команд, даем
команду RCPT перед командой MAIL, команду DATA перед командой MAIL –
убеждаемся, что сервер правильно отвечает в таком случае откликом 503 с
комментариями. Даем адрес отправителя (а затем и получателя) без домена,
получаем в ответ снова отклик 501, хотя более логичным в таком случае
является отклик 553. Наконец пытаемся отправить письмо НЕ в домен mail.ru,
получаем отклик 550 – MX домена mail.ru должен принимать почту в домен
mail.ru, но не в произвольный домен, ведь этот сервер не является для нас
релейным!
Теперь, когда мы изучили принципы работы протокола SMTP,
переносящего по составной сети сообщения электронной почты, нам необходимо
более детально рассмотреть формат самих сообщений. Ранее мы упрощенно
полагали, что само письмо, передаваемое после SMTP команды DATA, не имеет
структуры и содержит только лишь текст, написанный пользователем.
На самом деле это не так и сейчас мы рассмотрим структуру письма,
передаваемого с помощью SMTP. Начнем с описания классического формата
письма, без поддержки MIME и национальных символов, затем рассмотрим эти
расширения. Для начала скажем, что письмо состоит из трех частей: конверт,
заголовок и тело. Поясняем, что конвертом письма называют команды SMTP
(MAIL, RCPT), которые необходимы почтовым серверам сети для правильной
доставки письма получателю или для правильной доставки отчета о
невозможности доставить письмо отправителю и в этом смысле данная «часть»
письма действительно похожа на конверт бумажного письма, отправляемого
обычной почтой. Как обычная бумажная почтовая служба не анализирует того,
что находится в бумажном конверте, а использует в своей работе лишь надписи
на самом конверте, так и система почтовых серверов не анализирует при
отправке письма ничего, кроме конверта электронного письма.
Как мы знаем, после команды DATA пользователь или почтовая программа
пользователя передают само письмо, но это письмо так же имеет структуру и
состоит из двух частей (пока упрощенно): заголовка письма и тела письма. Для
чего нужен заголовок письма? Представим себе, что мы получили письмо,
доставленное нам в почтовый ящик, упрощенно будем полагать, что в папку,
являющуюся нашим почтовым ящиком положили файл, и мы открыли его в