Что такое smtp расскажите кратко сценарий доставки сообщения через smtp

Обновлено: 02.07.2024

Содержание

История

Данный протокол зародился в начале 70-х двадцатого века как стандарт, созданный с целью унификации систем связи различных компьютерных систем, которые не имели ничего общего между собой.

Архитектура

Рисунок 1 – Схема взаимодействия по протоколу SMTP

Принцип работы

Протокол SMTP не несет никакой ответственности за прием почты. Это означает, что в спецификации этого протокола не определены способы настройки почтовых ящиков для отдельных пользователей, а также не упоминаются какие-либо иные задачи (такие как аутентификация), которые должны быть решены при приеме электронной почты. В этой спецификации просто указано, как должна осуществляться передача электронной почты от отправителя к получателю.

Задачи

Команды SMTP указывают серверу, какую операцию хочет произвести клиент. Команды состоят из ключевых слов, за которыми следует один или более параметров. Ключевое слово состоит из 4-х символов и разделено от аргумента одним или несколькими пробелами. Каждая командная строка заканчивается символами CRLF. Вот синтаксис всех команд протокола SMTP (SP - пробел):

Обычный ответ SMTP сервера состоит из номера ответа, за которым через пробел следует дополнительный текст. Номер ответа служит индикатором состояния сервера. [Источник 2]

Команды

Каждая команда SMTP начинается с ключевого слова – названия команды. За ним могут следовать параметры, отделенные пробелом.

Регистр символов, используемых во всех названиях команд и, за редким исключением, в параметрах базового протокола SMTP, не имеет значения. Однако в некоторых элементах расширений строчные и прописные символы могут различаться. Необходимо также учитывать, что левая часть почтового адреса, до символа @, может быть регистрозависимой.

В командах допускается использование только кодировки us - ascii, то есть символов, кодируемых семью битами. Это цифры, латинские буквы, и знаки препинания. Если информация передается восьмибитными блоками (октетами), старший бит должен быть равен нулю. Корректная интерпретация символов, старший, восьмой бит которых равен единице, например, русских букв, не гарантируется, использовать такие символы не следует.

Конец строк в протоколе SMTP обозначается последовательностью символов "возврат каретки" (шестнадцатеричный код 0 D ) и "перевод строки" (шестнадцатеричный код 0А). Эта последовательность обозначается CRLF. Сервер начинает выполнение команды только получив от клиента строку, завершающуюся последовательностью CRLF.

Сервера SMTP должны принимать командные строки длинной до 512 символов. Это значение может быть увеличено по желанию разработчиков. Для серверов, поддерживающих расширения ESMTP, требующие дополнительных параметров, максимально допустимая длина командной строки увеличивается. Соответствующие требования приведены в RFC, описывающих эти расширения.

Если не используется расширение, позволяющее серверу принимать несколько команд подряд, клиент передает серверу следующую команду только после получения ответа на предыдущую.

EHLO (Расширенное HELO)

Диалог клиента и сервера, как правило, начинается с приветствия. В RFC 821 в качестве приветствия предлагалась команда HELO. Однако с введением расширений ESMTP, эта команда была заменена на EHLO. Использование расширений ESMTP возможно только после выполнения команды EHLO.

Передача почты возможна только после выполнения одной из двух названых команд. Другие команды, не связанные с передачей почты ( NOOP, HELP, EXPN, VRFY, RSET и QUIT ), в принципе могут быть исполнены и без приветствия.

В качестве аргумента клиент передает серверу свое полное доменное имя, если таковое имеется. Если клиент не имеет доменного имени, например, если в качестве клиента выступает MUA, установленный на компьютере, получающем адрес динамически, то в качестве аргумента передается адрес электронной почты отправителя. Желательно, чтоб полученная от клиента информация была исчерпывающей для его идентификации.

Сервер проверяет соответствие указанного клиентом в приветствии доменного имени его адресу IP. Результат проверки добавляется к заголовку письма, но диалог продолжается независимо от достоверности полученного сервером идентификатора.

HELO (Приветствие)

RFC 2821 рекомендует использовать команду HELO, только если программное обеспечение не поддерживает команду EHLO. Отличие этой команды только в том, что она делает невозможным использование расширений ESMTP.

В ответ на эту команду сервер сообщает, готов ли он к продолжению диалога.

MAIL (Отправитель)

Команда MAIL может быть выполнена только после успешного выполнения команды EHLO или H E LO.

С помощью этой команды серверу сообщается адрес отправителя письма. На этот адрес письмо должно вернуться в случае невозможности доставки. Если возврат не желателен, адрес может быть оставлен пустым: <>:

Базовый протокол SMTP не предусматривает дополнительных параметров для команды MAIL, но такие параметры использует ряд расширений ESMTP.

RCPT (Получатель)

Команда RCPT может быть выполнена только после успешного выполнения команды MAIL.

Базовый протокол SMTP не предусматривает дополнительных параметров для команды RCPT, но такие параметры использует ряд расширений ESMTP.

Команда DATA может быть выполнена только после успешного выполнения хотя бы одной команды RCPT.

Команда DATA не требует никаких параметров и завершается последовательностью CRLF.

QUIT (Выход)

Командой QUIT клиент заканчивает диалог с сервером. Сервер посылает подтверждение и закрывает соединение. Получив это подтверждение, клиент тоже прекращает связь.

HELP (Помощь)

Если команда HELP вызывается без параметров, сервер посылает клиенту список доступных команд. Если в качестве параметра передано название команды, то клиенту посылается описание этой команды. Серверам SMTP рекомендуется поддерживать эту команду без параметров. Описание отдельных команд посылать не обязательно.

VRFY (Проверить), EXPN (Раскрыть)

Для получения адресов, внесенных в список рассылки, используется команда EXPN.

Используя эти команду, злоумышленники могут получить список адресов пользователей сервера.

Обе команды могут быть полезны в процессе отладки сервера, потому они, как правило, поддерживаются. Но на серверах, используемых в реальном окружении, их обычно отключают. Возможен также вариант, при котором вызов команд возможен, но они проверяют только синтаксическую верность адреса.

Согласно RFC 821, команды VRFY и EXPN не являются обязательными. Поэтому, если сервер их поддерживает, они должны быть перечислены в ответе сервера на команду EHLO, как расширения ESMTP.

NOOP (Пустая команда)

В ответ на команду NOOP сервер посылает подтверждение выполнения. Никаких действий на сервере не производится, параметры команды игнорируются.

RSET (Сброс)

Описанные в RFC 821 устаревшими. Если их все же используют, то они должны быть перечислены в ответе на команду EHLO, как расширения ESMTP.

TURN (Смена направления передачи)

Команда TURN представляет потенциальную опасность, так как она может быть использована для перехвата чужой почты. Потому RFC 2821 категорически не рекомендует ее использовать. Хорошими альтернативами команде TURN являются расширения ESMTP ETRN и ATRN, рассматриваемые ниже.

Ответы сервера SMTP

На каждую команду клиента сервер посылает ответ, состоящий из числового кода и отделенной от него пробелом текстовой строки.

В большинстве случаев для правильной интерпретации ответа клиенту достаточно числового кода. Текстовая строка нужна для интерпретации ответа человеком. Исключение составляет ответ на команду EHLO, содержащий список расширений ESMTP, поддерживаемых сервером, а так же ответы на некоторые команды ESMTP.

Согласно RFC 2821, код ответа состоит из трех цифр. Первая цифра кода может принимать следующие значения:

Вторая цифра может принимать следующие значения:

  • 0 Синтаксическая ошибка, неправильное или недопустимое использование команды.
  • 1 Ответ содержит запрошенную информацию.
  • 2 Ответ о состоянии канала передачи.
  • 5 Ответ информирует о состоянии принимающей почтовой системы.

Если ответ состоит из нескольких строк, то каждая из них начинается числовым кодом, который отделяется от сопровождающего текста не пробелом, а символом "минус" (-). В последней строке цифровой код отделяется от текста пробелом. Каждая строка ответа заканчивается последовательностью CRLF.

В таблице ниже собраны ответы, предусмотренные для команд SMTP.

В случае переадресации почты допускается также использование ответа 250. В этом случае клиент о переадресации не информируется. Сервер может также отказать в приеме почты для уже не существующего пользователя и послать ответ 551 с указанием нового адреса или ответ 550. [Источник 3]

SMTP (Simple Mail Transfer Protocol) — простой протокол передачи почты. Протокол SMTP был создан в 1982 году, а расширенная версия SMTP (ESMTP, Extended SMTP) вышла в 2008 году и используется сейчас.

p, blockquote 1,0,0,0,0 -->


p, blockquote 2,0,0,0,0 -->

Архитектура электронной почты

Протокол SMTP используется при передаче электронной почты, возможны два варианта использования:

p, blockquote 3,0,0,0,0 -->

Архитектура электронной почты

p, blockquote 4,0,0,0,0 -->

При передачи почты от агента пользователя почтовому серверу и при передачи писем между почтовыми серверами используется протокол SMTP. Для чтения почты используется протоколы POP3 и IMAP.

p, blockquote 5,0,0,0,0 -->

Место протокола SMTP в стеке TCP/IP

В стеке протоколов TCP/IP протокол SMTP находится на прикладном уровне .

p, blockquote 6,0,0,0,0 -->

Протокол smtp в стеке TCP IP

p, blockquote 7,0,0,0,0 -->

Теоретически SMTP может работать с любыми протоколами транспортного уровня , TCP, UDP или с другими возможными протоколами. За SMTP стандартами закреплено два номера порта:

  • Порт 25 для передачи почты между почтовыми серверами;
  • Порт 587 для передачи почты от почтового клиента на сервер.

На практике, почти всегда используется один транспортный протокол TCP и порт 25.

p, blockquote 9,0,0,0,0 -->

Формат электронного письма

Электронное письмо состоит из трех частей, это конверт, заголовок и тело письма. Команды протокола SMTP находятся только в конверте, именно конверт используется при передачи почты между серверами и почтовыми клиентами и данные в конверты определяются, как почта будет передаваться.

p, blockquote 10,0,0,0,0 -->

Заголовки и тело письма формально не являются частью протокола SMTP, они задаются в отдельном документе RFC2822. Так как заголовки используются при передаче писем, мы их рассмотрим.

p, blockquote 11,0,1,0,0 -->

p, blockquote 12,0,0,0,0 -->

Команды SMTP

Команды SMTP состоят из 4-х символов. Никакой особой причины для этого нет, просто разработчики протокола выбрали такую длину команд. Основные команды перечислены на картинке ниже, есть и другие команды, но они используются значительно реже.

p, blockquote 13,0,0,0,0 -->

команды smtp

  • Команда HELO используется для установки соединения, при этом клиент должен указать свой домен и свой почтовый адрес (пример в таблице).
  • Команда MAIL используется для того, чтобы задать адрес отправителя. Полный формат команды в примере MAIL FROM и адрес отправителя.
  • Команда RCPT используется для задания адреса получателя. Одно и то же письмо можно передать нескольким получателям для этого нужно использовать команду RCPT несколько раз.
  • Команда DATA используется, чтобы сообщить принимающему серверу, что конверт закончился и дальше пойдет письмо.
  • Команда QUIT служит для разрыва соединения с сервером, после того, как передача письма закончена.

Ответы SMTP

Ответы smtp

p, blockquote 16,0,0,0,0 -->

p, blockquote 17,0,0,0,0 -->

p, blockquote 18,0,0,0,0 -->

Заголовки письма

Заголовки письма формально не являются частью стандарта SMTP.

p, blockquote 19,0,0,0,0 -->

заголовки письма в smtp

Пример сеанса SMTP

Рассмотрим пример сеанса SMTP, который используется для отправки письма.

p, blockquote 21,0,0,0,0 -->

Пример сеанса smtp

p, blockquote 22,1,0,0,0 -->

p, blockquote 23,0,0,0,0 -->

p, blockquote 24,0,0,0,0 -->

p, blockquote 25,0,0,0,0 -->

p, blockquote 26,0,0,0,0 -->

Пример сеанса smtp

p, blockquote 27,0,0,0,0 -->

p, blockquote 28,0,0,0,0 -->

Тело состоит из двух строк Hello, email world ! и Hello, SMTP ! Завершается письмо строкой в которой находится одна точка, эта строка не является частью письма и будет удалена при передаче. А если Вам нужна в строке точка, то вы должны указать две точки, одна из этих точек будет удалена при передаче.

p, blockquote 29,0,0,0,0 -->

p, blockquote 30,0,0,0,0 -->

Расширение SMTP

В 2008 году появилось расширение SMTP — ESMTP. Там появились новые команды. Вместо команды HELO предлагается использовать команду EHLO — Extended HELO. Если мы хотим использовать расширенную версию SMTP, то при установки соединения вместо команды HELO мы должны указывать команду EHLO.

p, blockquote 31,0,0,0,0 -->

Примеры других новых команд:

  • Команда STARTTLS используется для того, чтобы начать зашифрованное соединение.
  • SIZE может использоваться для того, чтобы узнать максимальный размер письма, который принимает почтовый сервер.
  • DSN применяется, чтобы получить подтверждение о доставки письма.

p, blockquote 33,0,0,1,0 -->

Команда EHLO

Если мы хотим использовать расширенную версию протокола SMTP, то для установки соединения, мы должны использовать команду EHLO и после нее указывать домен отправителя, также, как и для обычной команды HELO.

p, blockquote 34,0,0,0,0 -->

При получении этой команды, почтовый сервер понимает, что мы хотим использовать расширенную версию протокола SMTP и он выдает нам перечень команд расширенной версии, которые он поддерживает.

p, blockquote 35,0,0,0,0 -->

Команда EHLO в smtp

p, blockquote 36,0,0,0,0 -->

Например сервер поддерживает шифрование с помощью операции STARTTLS . Он сразу указывает максимальный размер письма, которое принимает 250 SIZE 100000000 . Можно получить подтверждение о доставке 250 DNS . И можно использовать другие команды, а также те команды, которые используются в обычном SMTP.

p, blockquote 37,0,0,0,0 -->

Безопасность и спам

Протокол SMTP не содержит механизмов для защиты данных. Адреса, которые вы вводите в поля MAIL FROM в конверте и FROM в заголовке никак не проверяются. Во-первых значения этих полей могут отличаться друг от друга. Во-вторых можно использовать любой почтовый адрес, не обязательно ваш, в том числе другие люди, если знают ваш email адрес могут подставить его в эти поля и отправлять почту якобы от вашего имени.

p, blockquote 38,0,0,0,0 -->

По умолчанию, протокол SMTP не использует шифрование и все письма, которые передаются через интернет могут быть прочитаны. В расширенной версии протокола SMTP появилась возможность использовать шифрование с помощью команды STARTTLS, но эту возможность мало кто использует.

p, blockquote 39,0,0,0,0 -->

p, blockquote 40,0,0,0,0 -->

p, blockquote 41,0,0,0,0 -->

Многие почтовые серверы настроены так, чтобы принимать почту только для локальных пользователей, т.е. для тех, у которых есть почтовые ящики в том домене, который они обслуживают. Серверы, которые работают в другом режиме и позволяют передавать почту на любые email адреса в интернете называются открытые релеи. Спамеры с помощью специальных программ ищут открытые релеи в интернете и используют их с помощью массовой рассылки писем. Если почтовый сервер работает в режиме открытого релея, это серьезная недоработка администратора этого сервера.

p, blockquote 42,0,0,0,0 -->

Также есть возможность проверки адреса отправителя с помощью цифровой подписи, для этого также используются взаимодействия с системой DNS. В DNS записях специального вида хранится открытый ключ электронной подписи для данного домена и этот открытый ключ можно использовать для проверки подлинности адреса отправителя.

p, blockquote 43,0,0,0,0 -->

Заключение

А если собираетесь заниматься почтовыми рассылками для клиентов, то пригодятся знания: как правильно настроить и использовать SMPT через почтовые клиенты, например, The Bat или Microsoft Outlook.

Зачем нужен SMTP-сервер

Чтобы рассылать письма без ограничений

Часто провайдеры устанавливают ограничения на количество отправляемых писем в сутки. Если ограничения нарушить, почтовый адрес попадает в чёрный список и заблокируется.

SMTP позволяет обходить лимиты и без рисков отправлять массовые рассылки по всей базе подписчиков.

Чтобы повысить доставляемость писем

Чтобы избежать утечки личных данных подписчиков

Данные подписчиков хранятся на сервере отправителя рассылки, а не на сервере SMTP. Через SMTP данные не могут быть похищены или выложены в общий доступ, ведь сервер их не сохраняет.

Чтобы анализировать, почему рассылка не доставлена

При отправке письма сервер присылает ответы — специальные команды. Они известны заранее, поэтому можно понять, почему письмо не было отправлено.

Например, есть команда-ответ, которая означает, что отправка письма невозможна, так как почтовый адрес отправителя занесён в чёрный список.

Чтобы сэкономит деньги на транзакционной рассылке

SMPT-сервер стоит дешевле, чем специальные сервисы email-рассылок. Хотя у SMPT нет возможностей создавать шаблоны, автоматические цепочки, лендинги и сайты, он полезен, когда нужно доставить много писем. Например, транзакционных, в которых не используются картинки, GIF и видео.

Недостатки SMTP-серверов

Отсутствие шифрования

Все письма, которые отправлены с сервера, могут быть перехвачены злоумышленниками и прочитаны. Можно частично защитить данные, если использовать команду STARTTLS в расширенной версии сервера.

Много спама на стороне отправителя

Сервер не имеет защиты от спама, поэтому почтовые ящики отправителя будут переполнены спамом. Его придётся удалять вручную, если сервер не использует внешние механизмы блокировки спама.

Доработка для корректной работы

Чтобы отправлять рассылку через SMTP-сервер без проблем, его надо дорабатывать: настраивать заголовки, исправлять ошибки. Если сервер купить или арендовать, доработкой займётся техническая поддержка. Если он создан своими силами, то нужно найти разработчика.

Какие бывают SMTP-серверы

Обычные

Обычные серверы используются для отправки личной почты. Они принадлежат провайдерам, хостингам или бесплатным почтовым клиентам.

Главный минус — ограничение на отправку писем. Обычно это дневной лимит. Если лимит превысить, рассылка попадёт в спам, а почтовый ящик может быть занесён в чёрный список.

Выделенные

Как работает SMTP-сервер

SMTP — это комплекс из сервера, жёсткого диска, дополнительного оборудования и программного обеспечения. Сервер выступает в роли посредника между почтой отправителя и почтой получателя письма.

Работает он так:

  1. Проверяет настройки на компьютере, с которого отправляется письмо. Если настройки без ошибок, даёт разрешение на отправку.
  2. Соединяется с почтой получателя, устанавливает связь и отправляет письмо.
  3. Подтверждает успешную доставку письма. Если отправка не произошла, присылает уведомление об ошибке.

Команды и ответы: пример SMTP-сессии

Шаг 1. Подготовка к отправке

Отправитель: команда HELO. Используется, когда сервер почты отправителя связывается с сервером почты получателя.

Получатель: ответ 250. В ответ сервер получателя должен прислать ответную команду, которая разрешит дальнейшие действия.

Шаг 2. Уведомление об отправке

Отправитель: команда MAIL FROM. Команда сообщает, от кого будет отправлено письмо.

Пример: 250 2.1.0 Ok

Шаг 3. Выбор почты получателя

Отправитель: команда RCPT TO. Команда сообщает, на какой почтовый адрес будет отправлено письмо.

Получатель: ответ 250 2.1.0 Ok. Сервер согласен принять письмо для этого получателя.

Пример: 250 2.1.0 Ok

Шаг 4. Передача письма

Отправитель: команда DATA. Сервер отправителя сообщает, что начинает передавать письмо.

Получатель: ответ 250 2.0.0 Ok. Сервер сообщает, что принял письмо. Ещё он назначит ему ID, по которому можно будет узнать, что стало с письмом, если оно не будет доставлено.

Пример: 250 2.0.0 Ok: queued as 1CD5PQ7ERT

Шаг 5. Завершение передачи

Отправитель: команда QUIT. Сервер отправителя сообщает, что передача завершена и сеанс закончен.

Получатель: ответ 221 2.0.0 Bye. Сервер получателя завершает сеанс.

Пример: 221 2.0.0 Bye

Как отправлять рассылку с использованием SMTP-сервера

Если почта заведена на бесплатном почтовом клиенте

Возможности

Вы уже используйте SMTP, если отправляете письма с бесплатных почтовых ящиков, например, Yandex, Google, Yahoo. Чтобы начать работу, необходимо авторизоваться в веб-интерфейсе почты через логин и пароль.

Недостатки

Бесплатные почтовые сервисы не подойдут для массовых рассылок.

Чтобы отправлять письмо, надо соблюдать лимиты. Если превысить лимиты, почтовый сервис заблокирует ящик. Например, Яндекс позволяет отправлять 500 писем в сутки с одного ящика.

Если почта заведена у интернет-провайдера

Возможности

Некоторые провайдеры вместе с услугами связи создают на своих доменах клиентам почтовые ящики. С ящиков также можно отправлять письма через SMTP.

Недостатки

Почта на домене провайдера не подойдёт для массовых рассылок.

Так как провайдеры разрешают клиентам отправлять письма с собственных IP-адресов, они не могут допустить, чтобы писем стало слишком много и их стали помечтать как спам. Поэтому устанавливают лимиты на ежедневную отправку писем.

Пример: как настроить SMTP-сервер на Яндекс.Почте в почтовом клиенте The Bat

Исходные данные

Обычно письма через почту Яндекс отправляют из веб-интерфейса. Но можно делать это и с помощью почтовых клиентов.

Почтовый клиент — это программа. Она работает на компьютере и на смартфоне.

Если у отправителя рассылки несколько почтовых ящиков на разных платформах, то почтовый клиент позволяет всех их объединить. Тогда отправка писем с этих ящиков будет происходить в одном месте — через интерфейс почтового клиента.

Рассмотрим, как отправлять письма через сервер SMTP с Яндекс.Почты, которая подключена в почтовом клиенте The Bat (можно скачать с официального сайта разработчика)

Настройка Яндекс.Почты

Зайдите в Яндекс.Почту и перейдите в настройки:

настраиваем SMTP-сервер

Открываем настройки

Выберите, по какому протоколу будет работать сервер:

  • IMAP — если заходите в почту то с компьютера, то со смартфона, а также если ящик корпоративный, и кроме вас им пользуются коллеги;
  • POP3 — если писем немного и их не нужно сортировать.

Запустите почтовый клиент The Bat и создайте новый почтовый ящик.

создаем новый ящик для SMTP-сервера

Чтобы отправлять письма через сервер SMTP, нужно создать новый ящик

В окне укажите настройки:

Выбираем протокол и имя адреса

Выбор протокола, имени и электронного адреса

В следующем окне выберите протокол, который ранее указали в Яндекс.Почта. Автоматически подтянутся настройки адреса сервера и порт.

блоки заполняются автоматически

Эти блоки заполняются автоматически

Подтвердите настройки на следующем шаге и не забудьте поставить галочку напротив настроек аутентификации:

SMTP-сервер в Bat

Финальный шаг настройки SMTP в The Bat

Готово. Клиент настроен. Можно отправлять письма через сервер SMTP с Яндекс.Почты из интерфейса The Bat.

Стоит ли приобретать дополнительный SMTP-сервер для рассылки

Если нужны массовые рассылки, то использовать онлайн-сервисы и почтовые клиенты невозможно из-за лимитов. Чтобы отправлять письма без ограничений, нужно купить SMPT-сервер, арендовать или настроить самостоятельно. В первых двух случая сервер будет уже настроен или его настройкой займётся техническая поддержка продавца.

Вот цены одного из поставщиков услуг покупки и аренды сервера:

сколько стоит SMTP-сервер

Пример стоимости покупки и аренды SMTP-сервера

Что в итоге

Через SMTP-сервер нельзя отправлять письма с картинками и видео, зато он подойдёт, если необходимо делать массовые рассылки с текстом как, например, в триггерных письмах. Рассылка через SMTP дешевле, чем на специальных сервисах.

Рассылать письма без ограничений можно, если купить готовый SMTP-сервер, арендовать или подключить собственный. Первые два метода проще, так как настройкой будет заниматься техническая поддержка, а последний — сложнее. Доверить работу лучше специалисту, который всё сделает быстро.


Формат поля заголовка Received: (Принято:) следующий:

Формат этого поля заголовка следующий:

Поле Originator является всего лишь небольшим вспомогательным полем в многоцветье полей заголовка. Оно может быть использовано в качестве более простого пути для небольших SMTP-пакетов. При этом необходимость в более сложных полях заголовка, по которым определяется отправитель, отпадает.

Поля заголовка Dates

Это поле заголовка используется для идентификации сеансов MIME по определенному идентификационному коду, когда содержимое имеет сложную структуру.

Поле заголовка Content-Type

Данные второго типа начинаются со строки 27 и представляют собой форматированный текст с использованием обогащенного текстового формата.

Расширенный SMTP (Extended SMTP) реализован следующим образом. В начале сеанса SMTP команда HELO заменена на команду приглашения — EHLO. Получение сервером SMTP такой команды означает, что клиент может посылать ему расширенные SMTP команды. В листинге 5.7 показан пример сеанса с использованием EHLO , а также дополнительных команд.

Здесь в роли name может выступать либо имя хоста, либо доменное имя (если поступает запрос на получение почты для всего домена). Команда ETRN весьма хорошее подспорье для администратора электронной почты. Если почту для вашего почтового сервера хранит провайдер Internet, то с помощью этой команды можно уведомить его о готовности к приему собранной для вас почты. Существует несколько способов реализации такого алгоритма. Один из них — использование специальной программы Perl, которая поставляется с программой sendmail. Ее работа как раз и заключается в том, что после установления соединения с провайдером Internet она выдает команду ETRN с именем вашего домена в качестве аргумента. Получив эту команду, сервер SMTP провайдера инициирует еще одно SMTP-соединение с вашим локальным SMTP-сервером (по тому же РРР-соединению) и отдает всю предназначенную для вашего домена почту, которая имеется у него в очереди на отправку.

Читайте также: