Порт 465 и порт 587 оба служат для отправки почты с шифрованием, разница только в том, когда включается TLS: на 465 соединение шифруется сразу (implicit TLS, в программах обычно «SSL»), а на 587 сначала идёт открытое соединение, которое переводится в шифрованное командой STARTTLS («TLS»). Выбирайте 587, если программа поддерживает STARTTLS, 465, если в настройках есть только SSL, и 2525, если хостинг закрывает оба.
Коротко: какие бывают SMTP-порты
| Порт | Шифрование | Как называется в программах | Для чего |
|---|---|---|---|
| 25 | Обычно без шифрования или STARTTLS | Нет / STARTTLS | Передача почты между серверами, часто закрыт у хостеров |
| 465 | TLS с первого байта (implicit TLS) | SSL, SSL/TLS | Отправка почты клиентом или приложением |
| 587 | STARTTLS | TLS, STARTTLS | Отправка почты клиентом или приложением (стандартный порт submission) |
| 2525 | STARTTLS (у большинства релеев) | TLS, STARTTLS | Неофициальный запасной порт, когда остальные закрыты |
Чем STARTTLS отличается от implicit TLS
Implicit TLS (порт 465). Программа подключается к серверу и сразу начинает TLS-рукопожатие, как браузер на HTTPS. Пока шифрованный канал не установлен, ни одной SMTP-команды не передаётся. Если TLS не получился, соединения просто нет.
STARTTLS (порт 587). Программа подключается открыто, сервер в ответ на приветствие сообщает, что поддерживает STARTTLS, программа отправляет команду STARTTLS, и дальше соединение шифруется. Логин и пароль передаются уже после этого. Нюанс в том, что клиент должен требовать шифрование: если в настройках разрешена отправка «без шифрования, если не получилось», злоумышленник в сети теоретически может вырезать предложение STARTTLS и вынудить открытое соединение.
На практике оба варианта одинаково надёжны, если в программе явно выбрано шифрование. Современная рекомендация (RFC 8314) даже отдаёт небольшое предпочтение implicit TLS на 465, но порт 587 остаётся самым распространённым, и почти все программы и библиотеки поддерживают оба.
Немного истории: почему 465 считали устаревшим
Порт 465 когда-то выделили под SMTPS, затем отозвали, и долгое время его называли нестандартным. Стандартом для отправки почты клиентами стал 587 с STARTTLS. В 2018 году RFC 8314 вернул 465 официальный статус порта для отправки с implicit TLS. Поэтому в старых статьях можно встретить совет «не используйте 465», сегодня он неактуален. Большинство SMTP-сервисов сейчас принимают отправку на обоих портах, так что выбор чаще определяется тем, что поддерживает ваша программа и что разрешает хостинг.
Какой порт выбрать: практическое правило
- Программа предлагает выбор TLS/STARTTLS или SSL. Ставьте 587 + TLS (STARTTLS). Это самый совместимый вариант.
- В настройках есть только галочка «SSL» или «Использовать SSL». Ставьте 465. Многие старые плагины и CMS под «SSL» понимают именно implicit TLS.
- Соединение не устанавливается ни на 587, ни на 465. Скорее всего, хостинг закрывает исходящие почтовые порты. Попробуйте 2525, если ваш SMTP-сервис его поддерживает.
- Порт 25. Для отправки из приложения его лучше не использовать: он предназначен для обмена почтой между серверами и чаще всего закрыт.
Главная ошибка, которая выдаёт таймаут или «wrong version number»: порт и тип шифрования не совпадают. Если указать 465 и STARTTLS, программа ждёт открытого приветствия, а сервер ждёт TLS. Если указать 587 и SSL, выйдет наоборот. Пара должна быть строго такой: 465 с SSL, 587 с TLS/STARTTLS.
Почему порт 25 закрыт у хостеров
Порт 25 используют серверы для передачи почты друг другу, и именно через него заражённые машины и спамеры рассылали спам напрямую. Поэтому облака и хостеры закрывают или ограничивают исходящий 25. Например, в Google Cloud соединения на внешний порт 25 заблокированы, а 587 и 465 разрешены. В Amazon EC2 порт 25 по умолчанию ограничен, и для снятия ограничения нужно подавать заявку. У некоторых хостеров закрыты и 587 с 465, тогда выручает 2525.
Пример: настройки Bulko SMTP
Возьмём Bulko SMTP Relay как пример, поля будут такими же в любой программе:
| Поле | Значение |
|---|---|
| Сервер (SMTP Host) | smtp.bulko.io |
| Порт 587 | STARTTLS (в программах «TLS») |
| Порт 465 | SSL/TLS (в программах «SSL») |
| Порт 2525 | STARTTLS, если хостинг закрывает 587 и 465 |
| Порт 25 | Не поддерживается для отправки |
| Авторизация | Логин и пароль (AUTH LOGIN/PLAIN), логин вида smtp_xxxxxxxxxxxxxxxx |
Логин и пароль показаны в кабинете (Dashboard, раздел SMTP Access) и приходят на почту после оплаты. Если сервер отвечает ошибкой авторизации, проверьте, что логин скопирован полностью, подробнее в разборе ошибки 535.
Как быстро проверить, открыт ли порт
С сервера, где работает ваш сайт или приложение, можно проверить подключение из командной строки:
openssl s_client -connect smtp.bulko.io:465
openssl s_client -starttls smtp -connect smtp.bulko.io:587
openssl s_client -starttls smtp -connect smtp.bulko.io:2525
Если в ответ виден сертификат и приветствие сервера, порт открыт. Если команда висит и завершается по таймауту, исходящее соединение режет хостинг или файрвол. В этом случае пробуйте другой порт или обращайтесь к хостеру.
Типичные ошибки при настройке порта
- Таймаут соединения. Порт закрыт хостингом, файрволом сервера или антивирусом на компьютере. Проверьте другой порт и правила исходящего трафика.
- «wrong version number» или «SSL routines». Перепутан тип шифрования: на 587 выбран SSL или на 465 выбран STARTTLS.
- Ошибка сертификата (имя не совпадает). В поле сервера указан IP-адрес или другой домен. Пишите имя сервера точно так, как его даёт сервис, например
smtp.bulko.io, иначе проверка сертификата не пройдёт. - 535 Authentication failed. Порт и шифрование настроены верно, но логин или пароль не подходят. Скопируйте их заново из кабинета без лишних пробелов.
- «Must issue a STARTTLS command first». Программа пытается авторизоваться на 587 без шифрования. Включите TLS/STARTTLS в настройках.
Если после смены порта письма начали уходить, но попадают в спам, дело уже не в порте. Порт отвечает только за соединение с сервером отправки, а доставляемость зависит от SPF, DKIM, DMARC, репутации домена и содержания писем.
Частые вопросы
Порт 465 это SSL или TLS?
Это implicit TLS: соединение шифруется сразу. В программах этот вариант по старой памяти называют «SSL», хотя сейчас используется протокол TLS.
Что безопаснее: 465 или 587?
При правильной настройке оба безопасны. Важно, чтобы на 587 программа требовала STARTTLS, а не отправляла письма без шифрования, если сервер его не предложил.
Почему на порту 465 таймаут?
Чаще всего исходящий порт закрыт хостингом или указан неверный тип шифрования (STARTTLS вместо SSL). Проверьте пару «порт плюс шифрование» и попробуйте 587 или 2525.
Можно ли отправлять почту из приложения через порт 25?
Технически да, если сервер его принимает, но многие хостеры этот порт закрывают, а многие SMTP-сервисы, включая Bulko, не принимают на нём отправку. Используйте 587, 465 или 2525.
Что такое порт 2525?
Это неофициальный альтернативный порт, который поддерживают многие SMTP-релеи. Он нужен, когда хостинг блокирует стандартные почтовые порты. У Bulko на 2525 используется STARTTLS.