Отправка почты через SMTP (Simple Mail Transfer Protocol) может показаться сложной процедурой, но на самом деле она достаточно прозрачна и логична. Вот как происходит этот процесс:
- Подготовка сообщения. Отправитель должен написать письмо, указать адрес получателя, тему. При необходимости можно прикрепить файлы или изображения к письму.
- Установка соединения. Клиентское приложение, например, почтовый клиент на вашем компьютере или мобильном устройстве, инициирует соединение с почтовым сервером отправителя. Для этого оно использует IP-адрес или доменное имя сервера и определенный порт (обычно порт 25 для стандартного SMTP).
- Начало сеанса. Когда клиентское приложение подключается к серверу, оно отправляет команду «HELO» или «EHLO» для приветствия сервера и начала сеанса связи.
- Получение адресов отправителя и получателя. После приветствия сервера клиент отправляет команды «MAIL FROM» и «RCPT TO» для указания адреса отправителя и получателя. После ввода команд сервер проверяет – действительно ли существуют указанные адреса.
- Передача данных. Далее пользователь отправляет содержимое сообщения на сервер с помощью команды «DATA». Письмо передается в виде текста, разделенного на строки. Конец письма обозначается специальной последовательностью символов (обычно точка на отдельной строке).
- Доставка письма. После получения всего сообщения почтовый сервер отправителя передает его почтовому серверу получателя, устанавливая соединение по порту 25. При этом может использоваться несколько промежуточных серверов.
- Подтверждение доставки. Когда на почтовый сервер получателя приходит письмо, он посылает ответное сообщение клиентскому приложению отправителя, указывая, что письмо успешно получено (например, код состояния «250 OK»). Если сервер отправителя не получает обратной связи от сервера получателя, происходит еще несколько попыток соединения. Если письмо так и не доставлено, сервер отправителя указывает код ошибки отправки.
- Закрытие соединения. После завершения передачи письма клиент или сервер отправителя может завершить соединение командой «QUIT», и соединение закрывается.
Функционал SMTP ограничен доставкой электронной почты. Поэтому на стороне получателя письмо извлекается посредством POP и IMAP протоколов.
Для работы по SMTP обычно используют 25 порт. Для сетей, в которых находятся SMTP-серверы, 25-й порт должен быть обязательно открыт на исходящую активность. Чаще всего, чтобы предотвратить рассылку СПАМа некоторые провайдеры закрывают к нему доступ. В этом случае необходимо обратиться к провайдеру с просьбой открыть 25-й порт. Если провайдер откажет, а необходимость в сервере останется, клиенту придется сменить провайдера.
Несмотря на то, что в настоящее время SMTP практически всегда работает поверх защищенного SSL-соединения через порты 465 или 587, для SMTP-сервера, отправляющего почту заранее неизвестному списку адресатов, возможность исходящей активности через порт 25 остается обязательной.
Отдельно отметим, что открытый на исходящую активность 25-й порт необходим только для сервера. Для рядовых пользователей, работающих с почтой через сторонний сервер, такой как Яндекс, Mail.ru или Google, (а это, как было выше указано, в настоящее время практически всегда осуществляется через порты 465 или 587) 25-й порт не нужен.
Именно поэтому у провайдеров и появляется возможность его закрывать: обычные пользователи такого ограничения не заметят, а тот, кто решит поднять свой SMTP-сервер на домашнем компьютере, (а необходимости в этом в 99% случаев нет, кроме как для рассылки спама) сделать этого не сможет.
Помимо этого, диапазоны IP-адресов, выдаваемые провайдерам домашнего Интернета, практически всегда сразу по умолчанию включены в «черные списки», поэтому, если вы хотите их использовать, необходимо писать запросы администраторам этих «черных списков» с просьбой исключить свой IP-адрес.