- Simple Mail Transfer Protocol
-
SMTP Название: Simple Mail Transfer Protocol
Уровень (по модели OSI): Прикладной
Семейство: TCP/IP
Порт/ID: 25/TCP
Назначение протокола: Отправка электронной почты
Основные реализации (клиенты): MUA (The Bat!, MS Outlook, MS Outlook Express, Mozilla Thunderbird)
Основные реализации (серверы): MTA (postfix, exim)
Расширяемость: Доп. команды (RFC 2449)
SMTP (англ. Simple Mail Transfer Protocol — простой протокол передачи почты) — это сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.
ESMTP (англ. Extended SMTP) — масштабируемое расширение протокола SMTP. В настоящее время под «протоколом SMTP», как правило, подразумевают ESMTP и его расширения.
Содержание
Обзор протокола
SMTP используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Для приёма почты почтовый клиент должен использовать протоколы IMAP.
Чтобы доставить сообщение до адресата, необходимо переслать его почтовому серверу домена, в котором находится адресат. Для этого обычно используется запись типа MX (англ. Mail eXchange — обмен почтой) системы Exim[1]) для определения сервера, обслуживающего почту в домене адресата, также могут задействовать SRV-запись (RFC 2782).
Широкое распространение SMTP получил в начале 1980-х годов. До него использовался протокол UUCP, который требовал от отправителя знания полного маршрута до получателя и явного указания этого маршрута в адресе получателя, либо наличия прямого коммутируемого или постоянного соединения между компьютерами отправителя и получателя.
агентом отправки сообщений, который начал работать с SMTP. В настоящее время протокол SMTP является стандартным для электронной почты и его используют все клиенты и серверы.
Протокол был разработан для передачи только текста в кодировке MIME, который описывает способ преобразования двоичных файлов в текстовые. В настоящее время большинство серверов поддерживают 8BITMIME, позволяющий отправлять двоичные файлы так же просто, как текст.
Сервер SMTP — это конечный автомат с внутренним состоянием. Клиент передает на сервер строку
команда<пробел>параметры<перевод строки>
. Сервер отвечает на каждую команду строкой, содержащей код ответа и текстовое сообщение, отделенное пробелом. Код ответа — число от 100 до 999, представленное в виде строки, трактующийся следующим образом:- 2ХХ — команда успешно выполнена
- 3XX — ожидаются дополнительные данные от клиента
- 4ХХ — временная ошибка, клиент должен произвести следующую попытку через некоторое время
- 5ХХ — неустранимая ошибка
Текстовая часть ответа носит справочный характер и предназначен для человека, а не программы.
ESMTP — расширяемый протокол, в отличие от SMTP. При установлении соединения сервер объявляет о наборе поддерживаемых расширений (в качестве ответа на команду EHLO). Соответствующие расширения могут быть использованы клиентом при работе. Необходимо помнить, что если сессия начинается с команды HELO (используемой в «классическом» SMTP, RFC 821), то список расширений выводиться не будет.
Безопасность SMTP и спам
Изначально SMTP не поддерживал единой схемы авторизации. В результате этого спам стал практически неразрешимой проблемой, так как было невозможно определить, кто на самом деле является отправителем сообщения — фактически можно отправить письмо от имени любого человека. В настоящее время производятся попытки решить эту проблему при помощи спецификаций SPF, Sender ID, Yahoo Domain Keys. Единой спецификации на настоящий момент не существует.
Пример простейшей 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: <someusername@somecompany.ru> S:250 someusername@somecompany.ru sender accepted C:RCPT TO:<user1@company.tld> S:250 user1@company.tld ok C:RCPT TO: <user2@company.tld> S:550 user2@company.tld unknown user account C:DATA S:354 Enter mail, end with "." on a line by itself C:Hi! C:. S:250 769947 message accepted for delivery C:QUIT S:221 mail.company.tld CommuniGate Pro SMTP closing connection S: (закрывает соединение)
В результате такой сессии письмо будет доставлено адресату user1@company.tld, но не будет доставлено адресату user2@company.tld, потому что такого адреса не существует.
Расширения 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 2554 SMTP Service Extension for Authentication
- RFC 2821 The Simple Mail Transfer Protocol (заменяет RFC 821 aka STD 10, RFC 974 и RFC 1869)
- 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)
Примечания
- ↑ Спецификация Exim MTA Описание dnslookup роутера(англ.)
См. также
- IMAP
- Sender Policy Framework
- Sender ID
-
Основные протоколы TCP/IP Прикладной уровень · · · · · · · · · · ·
Электронная почта SMTP · · IMAP4 Передача файлов · · Удалённый доступ · · Уровень представления XDR Транспортный уровень · · · · · Сетевой уровень IPv4 · · · · · Канальный уровень · 802.11 WiFi · Token ring · · PPP · · · · DTM · · Frame Relay · Физический уровень · · · · EIA-485
Wikimedia Foundation. 2010.
Полезное
Смотреть что такое "Simple Mail Transfer Protocol" в других словарях:
Simple mail transfer protocol — Pile de protocoles 7 • Application 6 • Présentation 5 • Session 4 • … Wikipédia en Français
Simple Mail Transfer Protocol — Fonction Envoi de courriels Sigle SMTP Port 25 (sans authentification) 587 (avec authentification) … Wikipédia en Français
Simple Mail Transfer Protocol — (SMTP) Familia: Familia de protocolos de Internet Función: Envío de mensajes de correo electrónico Puertos: 25/TCP 587/TCP (Alternativo para clientes de correo) 465/TCP (SMTPS) Ubicación en la pila de protocolos … Wikipedia Español
Simple Mail Transfer Protocol — (SMTP), o protocolo simple de transferencia de correo electrónico. Protocolo de red basado en texto utilizado para el intercambio de mensajes de correo electrónico entre computadoras y/o distintos dispositivos (PDA s, Celulares, etc) … Enciclopedia Universal
Simple Mail Transfer Protocol — Simple Mail Transfer Protocol, SMTP … Universal-Lexikon
Simple Mail Transfer Protocol — This article is about the Internet standard for electronic mail transmission. For the email delivery company, see SMTP (company). Internet protocol suite Application layer … Wikipedia
Simple Mail Transfer Protocol — SMTP (Simple Mail Transfer Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Einspeisung von E Mail (Mail Submission), Abholung von E Mails eventuell über mehrere Stationen (Mail Transfer) Ports: 25/TCP 465/TCP (Verschlüsselt) 587/TCP… … Deutsch Wikipedia
Simple Mail Transfer Protocol — SMTP protokolas statusas T sritis informatika apibrėžtis ↑Elektroninio pašto ↑protokolas, naudojamas elektroniniams laiškams persiųsti tarp kelių interneto ↑serverių. Siuntėjas laišką pateikia SMTP serveriui. Šis laišką persiunčia toliau. Tinklo… … Enciklopedinis kompiuterijos žodynas
Simple Mail Transfer Protocol - AUTHentication — Internet message access protocol authentication SMTP AUTH est une extension du protocole SMTP. C est un protocole de transfert des courriels sur Internet qui inclut une étape d authentification au cours de laquelle le client se connecte… … Wikipédia en Français
Simple Mail Transfer Protocol — Abbreviated SMTP. The TCP/IP (Transmission Control Protocol/Internet Protocol) protocol that provides a simple e mail service and is responsible for moving e mail messages from one e mail server to another. SMTP provides a direct end to end… … Dictionary of networking