По протоколу smtp работает. Что такое smtp сервер

12.07.2019

(SMTP) - это стандарт для e-mail-почты. Изначально был зафиксирован в RFC 821 (1982 г.), последний раз обновлялся в 2008 году с расширенными добавлениями SMTP по RFC 5321 (широко распространенным сегодня протоколом).

Хотя почтовые серверы и другие почтовые агенты применяют SMTP для передачи и получения e-mail-корреспонденции, программное обеспечение пользовательского класса, как правило, использует SMTP-порты только для отправки данных на сервер для ретрансляции. Для получения сообщений клиентские приложения обычно используют либо IMAP, либо POP3. Данные протоколы наиболее удобны и востребованы для этих целей: имеют расширенный функционал и широкий спектр возможностей.

Характерные особенности

SMTP-связь между почтовыми серверами использует порт TCP 25. Почтовые клиенты часто отправляют исходящие письма на почтовый сервер по порту 587. Несмотря на то что устаревшие почтовые провайдеры по-прежнему разрешают использовать нестандартный порт 465 для этой цели.

SMTP-соединения, защищенные TLS, известные как SMTPS, могут быть выполнены с использованием технологии STARTTLS.

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

Назначение SMTP

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

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

Техническая терминология

SMTP — это протокол TCP/IP, используемый для работы с e-mail-почтой. Однако поскольку он ограничен возможностью отправлять сообщения в очередь на принимающей стороне, он обычно используется либо с POP3, либо с IMAP, которые позволяют хранить данные на сервер и при необходимости загружать их. Иными словами, обычно используют приложение, которое выбирает SMTP для отправки e-mail и POP3 или IMAP для получения корреспонденции. В системах на основе Unix sendmail является наиболее широко используемым SMTP-сервером для электронной почты. В коммерческий пакет Sendmail входит сервер POP3. Microsoft Exchange включает в себя SMTP-сервер и так же может быть настроен на поддержку POP3.

SMTP, как правило, используется для работы через интернет-порт 25. Альтернативой SMTP, который широко используется в Европе, является X.400. Многие почтовые серверы теперь поддерживают Extended Simple Mail Transfer Protocol (ESMTP), который позволяет передавать мультимедийные файлы в виде электронной почты.

История

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

Дальнейшие реализации включают FTP Mail Protocol, начиная с 1973 года. Работа по развитию продолжалась в 1970-х гг., пока ARPANET не перешла в современный Интернет в 1980 году. Затем Джон Постель предложил протокол передачи почтовых данных.

SMTP начал широко применяться в начале 1980-х гг. В то время данный протокол был дополнением к Unix для почтовой программы Unix Copy Program. SMTP лучше всего работает, когда отправляющая и принимающая машины подключены к Сети, используют механизм хранения и отправки и являются примерами технологии push.

Модель обработки почты

E-mail-почта отправляется почтовым клиентом (почтовым агентом пользователя, MUA) на почтовый сервер (агент отправки почты, MSA) с использованием SMTP на TCP-порт 587. Большинство провайдеров почтовых ящиков по-прежнему разрешают отправку на традиционный порт 25. MSA доставляет почту на свой почтовый агент (агент передачи почты, MTA). Зачастую эти агенты являются экземплярами общего программного обеспечения, активированного с различными параметрами на одном компьютере. Локальная обработка может выполняться либо на одной машине, либо разделяться между несколькими машинами. Процессы почтового агента на одной машине могут обмениваться файлами, но если обработка выполняется на нескольких машинах, они передают сообщения между собой, используя SMTP-порт, где каждая машина настроена на использование следующей машины в качестве интеллектуального хоста.

Обзор протокола

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


Помимо промежуточного ответа для DATA, ответ каждого сервера может быть либо положительным, либо отрицательным (код 2xx). Отрицательные ответы могут быть постоянными (коды 5xx) или временными (коды 4xx). Отклонение — это постоянный сбой, и клиент должен отправить сообщение отказов на сервер, на который он его получил. Падение - это положительный ответ, за которым следует отказ от сообщения.

Почтовые SMTP-порты и их значение

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

Пуск очереди пустых сообщений

Remote Message Queue Starting - это функция SMTP, которая позволяет удаленному хосту запустить обработку почты на сервере, чтобы она могла получать сообщения, предназначенные для нее, отправив команду TURN. Однако эта функция создавала потенциальную угрозу безопасности данных и была расширена в RFC 1985 командой ETRN, которая более надежно работает с использованием метода аутентификации на основе информации о системе доменных имен.

Международный адрес электронной почты

Пользователи, чей сценарий не является латинским, или которые используют диакритические символы не в наборе символов ASCII, испытывали трудности с требованием адреса электронной почты латинского алфавита (SMTP-порт mail.ru). RFC 6531 был создан для решения этой проблемы, предоставляя возможности интернационализации для SMTP, расширения SMTPUTF8 и поддержки многобайтовых и не-ASCII-символов в адресах электронной почты. Примеры: диакритические знаки и другие языковые символы (греческий и китайский). Также актуально для SMTP-порта Yandex.

Текущая поддержка этого документа на данный момент ограничена, но есть большой интерес к широкому внедрению RFC 6531 и соответствующих RFC в таких странах, как Китай, которые имеют большую пользовательскую базу, где Latin (ASCII) является иностранным сценарием.

Исходящая почта SMTP-сервера

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

Ограничения доступа к серверу исходящей почты

Администраторам сервера необходимо наложить определенный контроль на тех клиентов, которые могут использовать сервер. Это позволяет бороться со злоупотреблениями и спамом. Широко использовались подобные решения:

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

Современные SMTP-серверы обычно предлагают альтернативную систему, требующую аутентификации клиентов по учетным данным, прежде чем разрешать доступ.

SMTP — какой порт используется?

Связь между почтовыми серверами обычно всегда использует стандартное значение порта TCP 25, назначенного для SMTP. Тем не менее почтовые клиенты обычно вместо этого используют определенные порты порта smtp ssl. Большинство провайдеров интернет-услуг теперь блокируют весь трафик исходящего порта от своих клиентов в качестве меры защиты от спама. По той же причине предприятия обычно настраивают свой брандмауэр, чтобы разрешить исходящий порт с назначенных почтовых серверов.

Пример транспорта SMTP

Типичный пример отправки сообщения через SMTP на два почтовых ящика (alice и theboss), расположенных в одном и том же почтовом домене (example.com или localhost.com), воспроизводится в следующем сеансе обмена. После того как отправитель сообщения (клиент SMTP) устанавливает надежный канал связи для приемника сообщений (SMTP-сервер), сеанс открывается с сервером, обычно содержащим его полное доменное имя (FQDN), в этом случае smtp, example или com. Клиент инициирует свое диалоговое окно, отвечая командой HELO, идентифицирующей себя в параметре команды с его полным доменным именем (или литералом адреса, если он недоступен).

Дополнительные расширения

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

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

Методы защиты от спама и аутентификация по электронной почте

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

Производятся специальные предложения для изменения SMTP или их замены полностью. Одним из примеров этого является Internet Mail 2000, но ни он, ни какой-либо другой не добились большого успеха перед сетевым эффектом огромной установленной базы классического SMTP. Вместо этого почтовые серверы теперь используют целый ряд методов, в том числе DomainKeys, DomainKeys Identified Mail, Policy Policy Framework и DMARC, DNSBLs и greylisting для отклонения или карантина подозрительных писем.

Ярким пунктом многих протоколов прикладного уровня,является то, что они простые. Протоколы, основанные на TCP используют в основном команды и ответы в текстовом формате, что делает их более удобными для пользователей, чтобы понять и программистам для реализации.

Для дальнейшей иллюстрации мы рассмотрим два протокола, которые можно использовать каждый день, чтобы отправлять и получать электронную почту: SMTP и POP3.
Простой протокол передачи почты: SMTP
Simple Mail Transfer Protocol (SMTP) является одним из самых уважаемых интернет-протоколов. Разработанный в начале 1980-х, его функции чисто и просто передают по электронной почте, а также между сетями и другими транспортными системами. Таким образом, его использование не обязательно должно быть ограничено в системах, использующих протокол TCP / IP . Любая система связи способна обрабатывать линии до 1000 7-битных ASCII символов которые могут быть использованы для выполнения сообщений по протоколу SMTP. В TCP / IP сети, однако, TCP обеспечивает транспортный механизм.
В SMTP-отправитель является клиентом, а клиент может взаимодействовать с различными серверами. Сообщения могут отправляться непосредственно от отправляющего хоста на хост-получателя, требующего отдельного соединения TCP и должны быть сделаны каждая копия каждого сообщения. Тем не менее, несколько получателей почты могут запустить свой собственный сервер SMTP.
Это наиболее характерно для назначения SMTP сообщений,сервер, который обслуживает группу пользователей, таких как интернет-домены. Сервер получает всю почту, предназначенную для пользователей, а затем позволяет им собирать, используя POP3 (Post Office Protocol версии 3) или другие почтовые протоколы. Кроме того, большинство SMTP-клиентов посылают сообщения в один «умный хост» сервер, чья работа заключается в том, чтобы передать эти сообщения для своих возможных получателей.
Транзакции SMTP начинаются тогда, когда отправитель клиент открывает TCP соединение с приемником, используя известный номер порта 25. Сервер признает связь, отправив обратно сообщение вида «220 SMTP Server Ready «. SMTP использует похожий формат ответов на FTP, который мы рассмотрели ранее. Полученный трехзначный код, программное обеспечение клиента должно ответить, если все будет ОК. Эта стаья, чтобы помочь людям, которые могли бы устранить неполадки с помощью анализа журнала транзакций. В окне «Application Protocol Ответы кодов» содержится более подробная информация о кодах сообщений ответа.
Сервер SMTP может отказать в связи, отправив обратно сообщение с ответным кодом «421 Служба недоступна». Например, SMTP сервер провайдера услуг Интернета, при условии, для своих абонентов для передачи исходящей почты может отказать в связи с хостом, чей IP-адрес указывает, что он не является абонентом ISP. Основной SMTP протокол не имеет формы контроля доступа - так, как его можно использовать для передачи сообщений и это делает его непрактичным - так что единственный путь,в котором провайдеры могут предотвратить неподписчиков, таких как спамеров, от использования своих почтовых серверов для отправки сообщений.
Получив подтверждение правильных знаков отправителя на сервер, сервер отправляет строку «HELO имя». HELO знак на команду и имя, является именем хоста. Как мы увидим, имя хоста используется в редакции: заголовок, сервер добавляет сообщение, когда он отправляет его по своему пути. Эта информация позволяет получателю проследить путь по сообщению.
Посылающий сервер
Когда отправитель получает признание «250 OK» он может начать отправку сообщений. Протокол чрезвычайно прост. Всё что отправители должны сделать, это сказать, какие из сообщений должны поставлять содержимое сообщения.
Сообщение задаётся с помощью команды «MAIL FROM: ». Эта команда также сообщает получателю, что он собирается получать новые сообщения, так что он знает, чтобы очистить свой список получателей. Адрес в угловых скобках является обратным путём для сообщения. Обратный путь это адрес, такой,что любое сообщение об ошибке будет сгенерировано, если сообщение не доставлено или не отправляется.
Оно действительно на обратном пути и является недействительным, как в «MAIL FROM: ». Это обычно используется при отправки отчета об ошибке. Нулевой путь возврата означает, что отчет об ошибке, не требуется. Его основной целью является не попасть в ситуацию, в которой сообщения невозможно доставить трансферу туда и обратно, потому что оба адреса отправителя и получателя недоступны.
Получатели сообщений определяется с помощью команды «RCPT TO: ». Каждый адрес, заключен в угловые скобки. Сообщение может иметь много получателей, и RCPT TO: команда отправляется для каждого из них. Эти RCPT TO: команды, не все в заголовке сообщения, которые прибывают к месту назначения. В случае скрытых копий сообщений или списка адресов серверов получателя не будут отображаться в заголовке вообще.
Каждый получатель признается с ответом «250 OK». Получатель также может быть отклонён при использовании ответа с кодом 550 ответа. Это зависит от того, как сервер был настроен. Удаленный доступ к серверам провайдера SMTP может принять каждую команду RCPT TO:, даже если указанный адрес, является недействительным, так как сервер не знает, что адрес неверный, пока он не сделаеь поиск DNS на нём. Тем не менее, почтовый сервер, предназначенный для приема сообщений для локальных пользователей или конкретного домена будет отвергать почту для адресов, которые не находятся в этой области.
Могут быть получены и другие ответы в ответ на RCPT TO: сообщения, что сервер SMTP был полезным. Если адрес неправильный, но сервер не знает правильный адрес он может ответить «251 Пользователь не местный; направит » или «551 Пользователь не местный, попробуйте ». Обратите внимание на различные коды ответов означающих что, сервер направляет сообщение или нет. Эти ответы не являются общими, и почтовый клиент может просто отправить ответ 551 , как ошибку, а не пытаться анализировать альтернативные адреса из текста ответа.
Для полноты картины следует отметить, что команды RCPT TO: могут задавать маршруты, а не просто адреса. Маршрут будет выражаться в виде «RCPT TO: ».
Текст сообщений.
После того как все получатели были указаны, всё, что остается сделать отправителю отправить сообщение. Сначала он отправляет команду «DATA», а затем ожидает ответа типа: «354 Start вход почты, с конца .». Сообщение будет отправлено в виде последовательности строк текста. Но не будет получено подтверждений для каждой строки, хотя отправитель должен следить за ответом,который указывает на ошибки.
В конце сообщения, как указано в ответе указанном выше, период (точка) на линии своих собственных. Таким образом, одной из самых простых, но самых важных вещей,это то что почтовый клиент должен сделать - убедиться, что строка, содержащая один период не появляется в самом тексте. В конце сообщения признается с ответом «250 OK». Стоит отметить, что SMTP ни в малейшей степени не заинтересован в содержании сообщения. Это может быть все что угодно, хотя, строго говоря, сообщения не должны содержать любые символы с ASCII значениями в диапазоне от 128 до 255, а строки текста не должны превышать 1000 знаков. Так же не требуется, чтобы заголовки адреса отправителя и получателя, которые использовали команды SMTP, что делает их лёгкими для сообщений, по всей видимости, пришли от кого-то другого, чем истинный отправитель.

компьютер с локального компьютера. Для обмена сообщениями электронной почты между различными компьютерами с 1982 года применяется простой протокол передачи почты Simple Mail Transfer Protocol ( SMTP ). Легкость его применения и транспортируемость на различные платформы сделала этот протокол стандартным для обмена электронными сообщениями между компьютерными системами в сети Internet . Для того чтобы разобраться, как он работает, давайте рассмотрим, что он собой представляет. Описание протокола SMTP

Протокол SMTP был разработан для работы в различных сетях для транспортировки электронной почты. Однако одной из наиболее широко используемых стала сеть Internet , с установкой соединения TCP/IP через порт 25. Большинство версий ОС Linux автоматически устанавливают программный пакет по поддержке SMTP при установке различных сервисов. Для того чтобы убедиться в способности удаленного сервера работать по протоколу SMTP , можно войти на его порт 25, воспользовавшись программой telnet . Если будет получен ответ с этого порта, то на сервере запущен протокол SMTP . На локальном сервере можно проделать тоже самое, подключившись с помощью telnet на порт 25 на localhost . Пример сеанса telnet с сервером на базе ОС Linux показан в листинге 5.1.

1 $ telnet localhost 25 2 Trying 127.0.0.1... 3 Connected to localhost. 4 Escape character is "^]". 5 220 shadrach.smallorg.org ESMTP Sendmail 8.9.3/8.9.3; Wed, 25 Aug 1999 18:35:33 -0500 6 QUIT 7 221 shadrach.smallorg.org closing connection 8 Connection closed by foreign host. 9 $ Листинг 5.1. Пример сеанса telnet с портом 25

В строке 1 показан формат команды telnet с использованием хоста localhost и TCP-порта 25. В строке 5 показан типичный ответ сервера с ОС Linux, на котором установлен программный пакет для работы SMTP . Число, с которого начинается ответ, является трехзначным кодом ответа. Этот код может использоваться при поиске и устранении неполадок в работе электронной почты. Далее следует имя сервера SMTP и описание программного пакета SMTP , который распространяется организацией Sendmail Consortium. Строка 6 содержит команду QUIT на закрытие сеанса telnet . После этого сервер SMTP должен выдать сообщение о закрытии сеанса и разорвать TCP-соединение. Из данного примера можно сделать вывод о том, что протокол SMTP использует простые текстовые команды в формате ASCII и возвращает трехзначные кодированные ответы с текстовыми сообщениями. Протокол SMTP описывается документом Internet Request For Comment ( RFC ) номер 821, который был разработан группой Internet Engineering Task Force ( IETF ) и опубликован 21 августа 1982 года. С тех пор он претерпел несколько модификаций, но в целом основные команды протокола не изменились.

Основные команды клиента SMTP

После установления сеанса TCP сервер SMTP посылает клиенту специальное сообщение об установке соединения (как это показано в листинге 5.1). С этого момента управление соединением между двумя компьютерами осуществляется клиентом, подключившимся к серверу. Клиент управляет соединением при помощи набора специальных команд, которые он посылает серверу. Сервер, в свою очередь, должен соответствующим образом ответить на каждую посланную ему команду. В RFC 821 описаны основные команды для клиента SMTP, на которые сервер должен реагировать определенным образом. Хотя с момента создания этого документа появилось несколько расширений к протоколу SMTP, они пока поддерживаются не всеми почтовыми серверами. В этом разделе мы выделим лишь основные команды SMTP, определенные в RFC 821. В разделе "Расширения протокола SMTP" рассматриваются некоторые дополнения, реализованные в последних версиях пакета SMTP.

Формат команд в SMTP прост:

command ,

где command - четырехсимвольная команда протокола SMTP, а parameter - необязательный параметр, определяющий тип данных в команде. В табл. 5.1 приведены основные команды протокола SMTP. Далее мы рассмотрим эти команды более детально.

Таблица 5.1. Основные команды протокола SMTP Команда Описание
HELO Открывает приглашение от клиента
MAIL Определяет отправителя сообщения
RCPT Определяет получателей сообщения
DATA Определяет начало сообщения
SEND Посылает сообщение на терминал
SOML Send-or-Mail
SAML Send-and-Mail
RSET Сброс SMTP-соединения
VRFY Проверяет имя пользователя системы
EXPN Запрашивает список псевдонимов
HELP Запрашивает список команд
NOOP No operation - Ничего не делать
QUIT Остановить сеанс SMTP
TURN Реверс ролей в SMTP (клиент становится сервером)
Команда HELO

По определению, длина команд протокола SMTP четыре символа. Приветствие, выдаваемое клиентом на сервер, и есть команда HELO . Формат команды следующий:

HELO domain name

Смысл команды HELO заключается в представлении клиента серверу SMTP. К сожалению, этот метод доступа был разработан на начальной стадии развития сети Internet, когда еще не было столь большого числа попыток несанкционированного проникновения в компьютерные системы. Как видите, клиент может назвать себя любым именем в командной строке. Это привело к тому, что в настоящее время большинство серверов SMTP эту команду используют чисто формально. Если они действительно стараются идентифицировать клиента, то подключается механизм обратного преобразования DNS с целью определения действительного имени хоста клиента согласно системе доменных имен по его IP-адресу. Как правило, в целях безопасности серверы SMTP отказывают в установлении соединения хостам, IP-адрес которых не преобразуется в соответствующее имя хоста. Посылая данную команду, клиент уведомляет сервер о желании установить с ним соединение. Отвечая на эту команду, сервер, в свою очередь, уведомляет об установке нового соединения с клиентом и готовности принимать от него последующие команды.

Пользователи-клиенты и хосты-клиенты

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

Команда MAIL

Команда MAIL используется для организации сеанса обмена электронной почтой с сервером после того, как была послана команда HELO . Она указывает, от кого исходит данное сообщение. Формат команды MAIL следующий:

MAIL reverse-path

Аргумент reverse-path не только определяет отправителя сообщения, но также указывает маршрут, по которому можно вернуть сообщение в случае невозможности его доставки. Если отправитель является пользователем на клиентском компьютере, который инициировал сеанс SMTP, то формат команды будет следующим:

MAIL FROM: [email protected]

Заметьте, что в поле FROM указывается адрес электронной почты отправителя сообщения, включая полное имя клиентского хост-компьютера. Эта информация должна присутствовать в поле FROM почтового сообщения (но об этом позже). Если почтовое сообщение проходило на пути от отправителя к получателю через несколько узлов, то каждый из них будет добавлять сведения о себе в поле . Таким образом документируется путь прохождения сообщения через почтовые серверы. Довольно часто электронная почта от клиентов частных сетей должна проходить через несколько серверов электронной почты, прежде чем попасть в сеть Internet. Информация, которая содержится в поле reverse-path часто полезна при разрешении проблем в системах электронной почты или для обнаружения почтовых серверов, которые пытаются скрыть свою принадлежность, посылая сообщения через неизвестные серверы SMTP.

И другие агенты пересылки сообщений используют SMTP для отправки и получения почтовых сообщений, работающие на пользовательском уровне клиентские почтовые приложения обычно используют SMTP только для отправки сообщений на почтовый сервер для ретрансляции. Для получения сообщений клиентские приложения обычно используют либо POP (англ. Post Office Protocol - протокол почтового отделения), либо IMAP (англ. Internet Message Access Protocol ), либо патентованные системы (такие как Microsoft Exchange и Lotus Notes /Domino) для доступа к учетной записи своего почтового ящика на сервере.

История

В 1960-х годах использовались различные виды электронной связи. Люди связывались друг с другом с помощью систем, разработанных для определённых мейнфреймов . Когда всё больше компьютеров становились связанными, особенно в сети Правительства США, ARPANET , были разработаны стандарты для того, чтобы пользователи на различных системах могли писать электронные сообщения друг другу. Эти стандарты, разработанные в 1970-х годах, стали основой для SMTP.

Корни SMTP можно проследить в двух описанных в 1971 г. реализациях - Mail Box Protocol и SNDMSG, который был «изобретен» Рэем Томлинсоном из BBN Technologies для TOPS-20/TENEX-компьютеров, посылающих сообщения по ARPANET (в то время к ней были подсоединены менее 50 хостов).

Дальнейшие реализации включают в себя FTP Mail и Mail Protocol, разработанные в 1973 г. Разработка продолжалась на протяжении 1970-х, пока ARPANET не преобразовалась в современный Интернет около 1980 г. В том же году Джон Постел предложил Mail Transport Protocol (протокол передачи почты), благодаря которому FTP перестал быть основой для передачи почты. SMTP опубликован в RFC 821 (также написанном Постелом) в августе 1982 г.

Стандарт SMTP был разработан примерно в то же время, что и Usenet , сеть передачи данных, имеющая некоторые сходства с SMTP. SMTP стал широко использоваться в ранние 1980-е. В то время, он был дополнением для работающей под Unix почтовой программы Unix Copy Program (UUCP), которая больше подходила для обработки передачи электронных сообщений между периодически связанными устройствами. С другой стороны, SMTP прекрасно работает, когда как отправляющее, так и принимающее устройства связаны в сети постоянно. Оба устройства используют механизм хранения и пересылки и являются примером push-технологии (технологии «проталкивания»). Хотя новостные группы Usenet все еще распространяются между серверами с помощью UUCP, почта UUCP фактически исчезла вместе с маршрутом «bang path» (последовательность хост-машин в сети, по которой сообщение должно дойти до адресата), которые использовались как заголовки маршрутизации. В статье о перезаписи отправителя содержится техническая справочная информация о истории раннего SMTP и маршрутизации от источника до RFC 1123 .

Поскольку этот протокол сначала был с текстовым (ASCII) интерфейсом, то он плохо работал с бинарными файлами и символами многих неанглийских языков. Такие стандарты, как Multipurpose Internet Mail Extensions (MIME), были разработаны для кодирования двоичных файлов для передачи через SMTP. Разработанные после Sendmail агенты пересылки, как правило, также осуществляли опцию чистых 8 бит, так что альтернативная стратегия «просто посылай восемь» может быть использована для передачи произвольных текстовых данных (в любой восьмибитной ASCII-подобной кодировке символов) через SMTP. Однако все еще оставалась проблема кракозябр , вызванная разным отображением наборов символов у производителей, хотя сами почтовые адреса все еще позволяли использовать исключительно ASCII. Сегодня агенты пересылки, работающие с чистыми 8 битами, как правило, поддерживают расширение 8BITMIME, позволяющее передавать бинарные файлы почти так же легко, как обычный текст. Недавно было создано расширение SMTPUTF8 для поддержки текста в кодировке UTF-8 , благодаря чему стало возможным включать международное содержимое и адреса с использованием таких алфавитов, как кириллица или китайский.

Многие выдающиеся люди внесли свой вклад в спецификацию основного SMTP, среди них Джон Постел , Эрик Оллман , Дэйв Крокер, Нед Фрид, Рэндалл Джелленс, Джон Кленсин и Кейт Мур.

Модель обработки почты

Электронная почта представлена почтовым клиентом (MUA, mail user agent - пользовательский почтовый агент) для почтового сервера (MSA, mail submission agent - агент передачи электронной почты) с помощью SMTP по TCP -порту 587. Оттуда MSA доставляет почту своим агентам пересылки сообщений (MTA, mail transfer agent). Часто эти два агента являются просто различными образцами одного и того же программного обеспечения, запущенного с разными параметрами на одном устройстве. Локальная обработка может быть проведена как на отдельной машине, так и разделена между различными устройствами; в первом случае вовлеченные процессы имеют общий доступ к файлам, во втором случае SMTP используется для пересылки сообщения внутренне, причем каждый хост настроен на использование следующего устройства в качестве промежуточного хоста . Каждый процесс - сам по себе MTA, т. е. - SMTP-сервер.

Граничный MTA должен найти целевой хост. Он использует систему доменных имен (DNS) для поиска записей почтового обменника (mail exchanger - MX) домена получателя (часть адреса , находящаяся справа от символа @). Возвращаемая запись почтового MX содержит имя целевого хоста. Затем MTA подключается к серверу обмена в качестве SMTP-клиента.

Как только цель MX принимает входящее сообщение, она передает его агенту доставки почты (mail delivery agent - MDA) для локальной доставки сообщения. MDA предусматривает возможность сохранять сообщения в соответствующем формате почтового ящика. Прием почты, опять же, может быть проведен как несколькими, так и одним компьютером - изображение показывает два ближайших ящика для каждого случая. MDA может доставлять сообщения прямо на хранение или передавать их по сети с помощью SMTP или любых других средств, в том числе протокола локальной пересылки почты (Local Mail Transfer Protocol - LMTP) - производного от SMTP, предназначенного для этой цели.

После доставки на локальный почтовый сервер сообщение хранится для пакетного поиска по аутентифицированным почтовым клиентам (MUA). Сообщение извлекается приложениями конечного пользователя (почтовые клиенты) с использованием Internet Message Access Protocol (IMAP, который облегчает доступ к сообщениям и управляет хранящейся почтой), или же с помощью Post Office Protocol (POP), который обычно использует традиционный mbox-формат файлов, или фирменные системы вроде Miscrosoft Exchange/Outlook или Lotus Notes/Domino. Клиенты сетевой почты могут использовать любой метод, но протокол поиска часто не соответствует официальным стандартам.

SMTP определяет передачу сообщения, а не его содержание. Таким образом, он задает оболочку сообщения и её параметры (такие, как отправитель оболочки), но не заголовок либо тело самого сообщения. STD 10 и RFC 5321 определяют SMTP (оболочку), в то время как STD 11 и RFC 5322 - сообщение (заголовок и тело), официально называемый форматом почтового сообщения (Internet Message Format).

Обзор протокола

SMTP - требующий соединения текстовый протокол, по которому отправитель сообщения связывается с получателем посредством выдачи командных строк и получения необходимых данных через надёжный канал, в роли которого обычно выступает TCP-соединение (Transmission Control Protocol - протокол управления передачей). SMTP-сессия состоит из команд, посылаемых SMTP-клиентом , и соответствующих ответов SMTP-сервера . Когда сессия открыта, сервер и клиент обмениваются её параметрами. Сессия может включать нуль и более SMTP-операций (транзакций).

SMTP-операция состоит из трёх последовательностей команда/ответ (см. пример ниже). Описание последовательностей:

  • MAIL FROM - устанавливает обратный адрес (т. е. Return-Path, 53121.From, mfrom). Это адрес для возвращённых писем .
  • RCPT TO - устанавливает получателя данного сообщения. Эта команда может быть дана несколько раз, по одному на каждого получателя. Эти адреса также являются частью оболочки.
  • DATA - для отправки текста сообщения. Это само содержимое письма, в противоположность его оболочке. Он состоит из заголовка сообщения и тела сообщения, разделенных пустой строкой. DATA, по сути, является группой команд, а сервер отвечает дважды: первый раз на саму команду DATA, для уведомления о готовности принять текст; и второй раз после конца последовательности данных, чтобы принять или отклонить всё письмо.

Помимо промежуточных ответов для DATA-команды, каждый ответ сервера может быть положительным (код ответа 2хх) или отрицательным. Последний, в свою очередь, может быть постоянным (код 5хх) либо временным (код 4хх). Отказ SMTP-сервера в передаче сообщения - постоянная ошибка; в этом случае клиент должен отправить возвращённое письмо. После сброса - положительного ответа, сообщение скорее всего будет отвержено. Также сервер может сообщить о том, что ожидаются дополнительные данные от клиента (код 3xx).

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

MUA знает SMTP-сервер для исходящей почты из своих настроек. SMTP-сервер, действующий как клиент, т. е. пересылающий сообщения, определяет, к какому серверу подключиться, просмотром ресурса записей MX (Mail eXchange) DNS для домена каждого получателя. В случае, если запись MX не найдена, совместимые MTA (не все) возвращаются к простой А-записи . Пересылающие сервера также могут быть настроены на использование Smart host.

SMTP-сервер, действующий как клиент, устанавливает TCP-соединение с сервером по разработанному для SMTP порту 25. MUA должен использовать порт 587 для подключения к агенту предоставления сообщений (MSA). Основное различие между MTA и MSA заключается в том, что SMTP-аутентификация обязательно только для последнего.

SMTP и извлечение сообщений

SMTP - всего лишь протокол доставки. Он не может по требованию взять сообщения с удаленного сервера. Для извлечения почты и управления почтовым ящиком разработаны другие протоколы, такие как POP и IMAP. Тем не менее, SMTP предоставляет возможность начать на удаленном сервере обработку очереди сообщений, при которой запрашивающая система может получать все направленные ей сообщения (см. Remote Message Queue Starting ниже). POP и IMAP предпочтительны, когда компьютер пользователя включен не постоянно, или же временно подключен к Интернету.

Remote Message Queue Starting

Remote Message Queue Starting (запуск удаленной очереди сообщений) - особенность SMTP, позволяющая удаленнному хосту начать обработку очереди сообщений на сервере так, что он может получать предназначенные ему сообщения с помощью команды TURN. Однако эта особенность считалась небезопасной и была расширена в RFC 1985 командой ETRN, которая работает надёжнее благодаря основанному на информации DNS методу аутентификации .

On-Demand Mail Relay

ODMR (On-Demand Mail Relay - ретрансляция почты по требованию) - стандартизированное в RFC 2645 SMTP-расширение, позволяющее проводить ретрансляцию сообщения аутентифицированному пользователю.

Интернационализация

Многие пользователи, чей набор символов отличается от латиницы, сталкиваются с требованием адреса электронной почты на латинице. Для решения этой проблемы был создан RFC 6531 , предоставляющий возможности для интернационализации для SMTP - расширение SMTPUTF8. RFC 6531 предоставляет поддержку многобайтных и не-ASCII символов в почтовом адресе, например: δοκιμή@παράδειγμα.δοκιμή или 测试@测试.测试. Текущая поддержка ограничена, но есть большой интерес в широком распространении RFC 6531 и связанных с ним RFC в странах с обширной базой пользователей, для которых латиница не является родным алфавитом.

SMTP-сервер исходящей почты

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

Ограничения доступа к серверу исходящей почты

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

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

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

У данной системы есть несколько разновидностей. Например, SMTP-сервер организации может предоставлять доступ только пользователям той же сети, блокируя остальных пользователей. Также сервер может проводить ряд проверок клиентского IP-адреса. Эти методы обычно использовались организациями и учреждениями, например университетами, для внутреннего пользования сервером. Однако, большая их часть теперь использует описанные ниже методы аутентификации.

Благодаря ограничению доступа определенным адресам, администраторы сервера могут легко определить адрес любого злоумышленника. Если пользователь может использовать различные провайдеры для соединения с Интернетом, этот вид ограничения становится нецелесообразным, а изменение настроенного адреса SMTP-сервера исходящей почты непрактично. Крайне желательно иметь возможность использовать такую информацию о настройках клиента, которая не нуждается в изменении.

Аутентификация клиента

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

Открытый релей

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

Порты

Администраторы сервера выбирают, какой порт будут использовать клиенты для ретрансляции исходящей почты - 25 или 587. Спецификации и многие сервера поддерживают и тот, и другой порты. Хотя некоторые сервера поддерживают порт 465 для безопасного SMTP,но предпочтительнее использовать стандартные порты и ESMTP-команды, если необходима защищенная сессия между клиентом и сервером.

Некоторые сервера настроены на отклонение всех ретрансляций по порту 25, но пользователям, прошедшим аутентификацию по порту 587, позволено перенаправлять сообщения на любой действительный адрес.

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

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

Пример простейшей SMTP-сессии

C: - клиент, S: - сервер

S: (ожидает соединения) C: (Подключается к порту 25 сервера) S:220 mail.company.tld ESMTP CommuniGate Pro 5.1.4i is glad to see you! C:HELO S:250 domain name should be qualified C:MAIL FROM: S:250 [email protected] sender accepted C:RCPT TO: S:250 [email protected] ok C:RCPT TO: S:550 [email protected] unknown user account C:DATA S:354 Enter mail, end with "." on a line by itself C:from: [email protected] //чтобы письмо C:to: [email protected] //не было добавлено C:subject: tema //в категорию спам C: // C:Hi! C:. S:250 769947 message accepted for delivery C:QUIT S:221 mail.company.tld CommuniGate Pro SMTP closing connection S: (закрывает соединение)

В результате такой сессии письмо будет доставлено адресату [email protected], но не будет доставлено адресату [email protected], потому что такого адреса не существует.

Дополнительные расширения

Многие клиенты запрашивают расширения SMTP, поддерживаемые сервером, с помощью команды EHLO из спецификации расширенного SMTP (RFC 1870). HELO используется только в том случае, если сервер не ответил на EHLO . Современные клиенты могут использовать ключ SIZE расширения ESMTP для запроса максимального размера сообщения, которое будет принято. Более старые клиенты и сервера могут попытаться передать чрезмерно большие сообщения, которые будут отклонены после потребления сетевых ресурсов, включая время соединения. Пользователи могут вручную заранее определить максимальный размер, принимаемый ESMTP-серверами. Клиент заменяет команду HELO на EHLO .

S: 220 smtp2.example.com ESMTP Postfix C: EHLO bob.example.org S: 250-smtp2.example.com Hello bob.example.org S: 250-SIZE 14680064 S: 250-PIPELINING S: 250 HELP

smtp2.example.com объявляет,что он примет сообщение размером не больше чем 14,680,064 октетов (8-битных байтов). В зависимости от фактического использования сервера, он может на данный момент не принять сообщение такой величины. В простейшем случае, ESMTP-сервер объявит максимальный SIZE только при взаимодействии с пользователем через EHLO .

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

Изначальная спецификация SMTP не включала средств для аутентификации отправителей. Впоследствии, в RFC 2554 было введено расширение. Расширение SMTP (ESMTP) предоставляет почтовым клиентам механизм задания механизма обеспечения безопасности для сервера, аутентификации и профиля безопасности SASL (Simple Authentication and Security Layer) для последующих передач сообщений.

Продукты Microsoft реализуют собственный протокол - SPA (Secure Password Authentication) с помощью расширения SMTP-AUTH.

Однако, непрактичность широкого распространения реализации и управления SMTP-AUTH означает, что проблема спама не может быть решена с его помощью.

Обширное изменение SMTP, так же как и полная его замена, считаются непрактичными из-за огромной инсталированной базы SMTP. Internet Mail 2000 был одним из претендентов для такой замены.

Спам функционирует благодаря различным факторам, в том числе не соответствующие стандартам реализации MTA, уязвимости в защите операционных систем (усугубляемые постоянным широкополосным подключением), что позволяет спамерам удаленно контролировать компьютер конечного пользователя и посылать с него спам.

Существует несколько предложений для побочных протоколов, помогающих работе SMTP. Исследовательская группа Anti-Spam (The Anti-Spam Research Group - ASRG) - подразделение Исследовательской группы Интернет-технологий работает над почтовой аутентификацией и другими предложениями для предоставления простой аутентификации, которая будет гибкой, легковесной и масштабируемой. Недавняя деятельность Инженерного совета Интернета (IETF) включает в себя MARID (2004), приведший к двум утвержденным IETF-экспериментам в 2005, и DomainKeys Identified Mail в 2006.

Расширения ESMTP

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

Если же сервер поддерживает ESMTP, то кроме приветствия он сообщит список поддерживаемых расширений протокола SMTP, например:

Ehlo office.company1.tld 250-mail.company2.tld 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

Стандарты RFC
  • RFC 1870 SMTP Service Extension for Message Size Declaration (заменяет RFC 1653)
  • RFC 2034 SMTP Service Extension for Returning Enhanced Error Codes
  • RFC 2505 Anti-Spam Recommendations for SMTP MTAs (BCP 30)
  • RFC 4954 SMTP Service Extension for Authentication (заменяет RFC 2554)
  • RFC 2822 Internet Message Format (заменяет RFC 822 aka STD 11)
  • RFC 2920 SMTP Service Extension for Command Pipelining (STD 60)
  • RFC 3030 SMTP Service Extensions for Transmission of Large and Binary MIME Messages
  • RFC 3207 SMTP Service Extension for Secure SMTP over Transport Layer Security (заменяет RFC 2487)
  • RFC 3461 SMTP Service Extension for Delivery Status Notifications (заменяет RFC 1891)
  • RFC 3462 The Multipart/Report Content Type for the Reporting of Mail System Administrative Messages (заменяет RFC 1892)
  • RFC 3463 Enhanced Status Codes for SMTP (заменяет RFC 1893)
  • RFC 3464 An Extensible Message Format for Delivery Status Notifications (заменяет RFC 1894)
  • RFC 3552 Guidelines for Writing RFC Text on Security Considerations
  • RFC 3834 Recommendations for Automatic Responses to Electronic Mail
  • RFC 4409 Message Submission for Mail (заменяет RFC 2476)
  • RFC 5321 Simple Mail Transfer Protocol (заменяет RFC 821 aka STD 10, RFC 974 , RFC 1869 , RFC 2821)
  • RFC 5336 SMTP Extension for Internationalized Email Addresses
  • Перевод RFC 2505 - Рекомендации по предотвращению спама для SMTP MTA
  • Перевод RFC 2554 - Расширение сервиса SMTP для аутентификации
  • Перевод RFC 5321 - Простой протокол передачи электронной почты (SMTP)
Литература
  • Hughes L Internet e-mail Protocols, Standards and Implementation. - Artech House Publishers, 1998. - ISBN 0-89006-939-5
  • Hunt C sendmail Cookbook. - O"Reilly Media, 2003. - ISBN 0-596-00471-0
  • Johnson K Internet Email Protocols: A Developer"s Guide. - Addison-Wesley Professional, 2000. - ISBN 0-201-43288-9
  • Loshin P Essential Email Standards: RFCs and Protocols Made Practical. - John Wiley & Sons, 1999. - ISBN 0-471-34597-0
  • Rhoton J Programmer"s Guide to Internet Mail: SMTP, POP, IMAP, and LDAP. - Elsevier, 1999. -

Команды представляют собой текстовые строки, завершающиеся последовательностью. Команда, как таковая, представляет собой строку букв (обычно это 4 буквы), завершаемую пробелом (при наличии параметров) или. Получателям SMTP рекомендуют быть терпимыми к пробелам перед завершающей последовательностью.


Список команд протокола SMTP:

Команды прямо указанные в RFC 5321:

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

Пример:
HELO orsi1.rsmc.ru

  • MAIL - Определяет отправителя сообщения. Поле аргументов содержит обратный путь и может включать дополнительные параметры. Собственно этой командой задаётся отправитель письма (MAIL FROM)

Пример:
MAIL FROM:

  • RCPT - Определяет получателей сообщения. Одно и то же сообщение могут получать несколько пользователей. Обычно каждый получатель указывается отдельной строкой с командой RCPT.

Пример:
RCPT TO: root@сайт

  • DATA - Определяет начало сообщения. Не поддерживает параметров. После обработки команд MAIL и RCPT команда DATA используется для передачи информационной части сообщения. Все, что следует за этой командой, интерпретируется как сообщение для передачи. Вот оно, наше письмо! 

Пример:
DATA

  • RSET - Сброс SMTP-соединения па. Не поддерживает параметров. Возвращает сеанс к моменту после ввода команды HELO (EHLO) при этом все ранее посланные команды MAIL, RCPT и DATA считаются аннулированными.
  • VRFY - Проверяет имя пользователя системы. Если на почтовом сервере имеется локальный пользователь с заданным именем, то сервер вернет его полный почтовый адрес. Если такого локального пользователя нет то вернется сообщение об ошибке, либо сообщение о том что сервер будет пересылать письма дальше. В случае имени заданного в примере мы скорее всего получим сообщение об ошибке.

Пример:
VRFY kyrych

  • EXPN - Запрашивает список рассылки и почтовых псевдонимов.

Пример:
EXPN mail-list

  • HELP - Запрашивает список команд поддерживаемых сервером. Если указать в качестве параметра имя команды, то сервер возвращает справку по синтаксису данной командыю

Пример:
HELP VRFY

  • NOOP - No operation — Ничего не делать.

Пример:
NOOP

  • QUIT - Закончить сеанс SMTP. Не поддерживает параметров.

Пример:
QUIT

Прочие команды:

  • SEND - Посылает сообщение на терминал зарегистрированного пользователя. Эта команда выполняется, только если пользователь находится в системе, и обычно выглядит как всплывающее сообщение. Не самая популярная команда.
  • SOML - Если получатели сообщения подключены к системе, то SOML работает как команда SEND. Если не подключен, то как команда MAIL. Из-за небезопасности этой команды её редко реализуют на сервере.
  • SAML - передает сообщение на терминал пользователя, если он находится в системе и одновременно кладет это сообщение в его почтовый ящик.
  • TURN - Реверс ролей в SMTP (клиент становится сервером). Обычно протоколом SMTP предусмотрена пересылка сообщений только в одном направлении через одно TCP-соединение. Назначение команды TURN заключается в организации двустороннего обмена почтовыми сообщениями между двумя компьютерами по имеющемуся TCP-соединению. Из за популярности этой команды у злоумышленников её реализацию не часто можно встретить на сервере.
  • AUTH - Показывает серверу механизм аутентификации. RFC 4954 (заменил RFC 2554).
  • Вперёд
Добавить комментарий


  • Телеметрия в Windows 10. Отключай, не отключай, всё равно получишь лучшее решение
  • Го. Компьютер смог обыграть чемпиона трехкратного чемпиона Европы по игре го
  • Новые "подарки" от Microsoft - "стабильность" и "приватность"
Новые статьи
  • Не включается сетевое обнаружение в Windows 7/8/2008/2012
  • Ошибка: This application failed to start because it could not find or load the Qt platform plugin «windows».

    Итак, после установки путём прямого копирования приложения написанного на С++ с использованием библиотеки Qt Получаем следующую ошибку: This application failed to start...

Похожие статьи