Вопрос или проблема
Я настроил exim4 и пытаюсь отправить электронные письма, используя порт 587, письмо отправляется, но на почтовом сервере показывается соединение по порту 25. Я использую:
echo "Subject:Hello All" | sendmail -v -port 587 [email protected]
T: remote_smtp для [email protected]
Подключение к gmail-smtp-in.l.google.com [2607:f8b0:4004:c08::1a]:25 ... LOG: MAIN
(Не вставляю весь вывод журнала здесь)
+++++++++++++++++++++
Хотелось бы проверить, почему соединение идет на порт 25, как показано ниже—-
"""Подключение к gmail-smtp-in.l.google.com [2607:f8b0:4004:c08::1a]:25 ... LOG: MAIN""""
Я хочу, чтобы все мои письма подключались по порту 587, так как я запросил порт 587.
Я пробовал большинство настроек, показанных онлайн в конфигурационном файле exim4. Но все равно соединяется на 25.
Ссылки, которые я пробовал, но безуспешно: https://www.fyzix.net/index.php?title=Installing_and_Configuring_Exim4_for_Gmail_SMTP_Relay и https://logs.paulooi.com/enable-smtp-port-587-on-exim.php
Также, любой почтовый сервер, который я использую… он подключается на порт 25…
Кто-нибудь может помочь мне здесь?
Похоже, ваш сервер Exim принимает электронную почту на порту 587, но когда дело доходит до доставки почты, он неправильно настроен для установления TLS/SSL-соединения с конечным сервером — вот почему он подключается к не-SSL порту 25. Вам нужно ознакомиться с конфигурацией Exim SSL/TLS, установить цифровой сертификат и настроить Exim на требование SSL/TLS-соединений при доставке сообщений.
Кроме того, некоторые удаленные SMTP-серверы могут захотеть установить безопасные соединения через разные порты, такие как 465, 587 и — да — 25. Это зависит от локальной настройки удаленного сервера.
Самый простой способ, который я нашел, чтобы это работало, — добавить port = 587
в секцию remote_smtp_smarthost:
в /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost
Это работает только если вы используете подход с разделенными файлами конфигурации, выбранный через, например, dpkg-reconfigure exim4-config
. В противном случае вам нужно отредактировать /etc/exim4/exim4.conf.template
(та же секция).
Затем выполните update-exim4.conf
для создания финального конфигурационного файла (/var/lib/exim4/config.autogenerated
).
Затем перезапустите демон exim, например, systemctl restart exim4
.
(Возможно, существуют другие/более корректные способы настроить это, изменяя директиву driver
или настройки TLS, но по какой-то причине это не работает “из коробки” на Debian, даже после указания порта 587 в URL SMTP через dpkg-reconfigure exim4-config
. Документация огромная.)
См. также https://www.fyzix.net/index.php?title=Installing_and_Configuring_Exim4_for_Gmail_SMTP_Relay
.
Ответ или решение
Конфигурация отправки электронной почты через exim4 с использованием порта 587
Если вы нацелились на использование exim4 для отправки писем через порт 587, но видите, что соединение устанавливается через порт 25, это может указывать на неправильную настройку транспортного уровня доставки сообщений. При правильной конфигурации exim4 должен использовать 587 порт для отправки писем через SMTPS (SMTP с поддержкой TLS).
Проблема:
Ваша текущая настройка, судя по всему, доказывает, что exim4 использует порт 25, подобно логам, показывающим соединение с gmail-smtp-in.l.google.com
. Порт 25 — это стандартный порт для несекьюрной передачи SMTP. Однако современные практики настоятельно рекомендуют использование портов 587 или 465 для шифрования и безопасности.
Решение:
Чтобы exim4 использовал порт 587, необходимо изменить конфигурацию транспорта. Следуйте инструкциям ниже:
-
Откройте файл конфигурации транспорта:
- Если вы используете конфигурацию с поддержкой разделённых файлов (split-file configuration), отредактируйте файл:
/etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost
. - Для монолитной конфигурации (если split-file не используется) отредактируйте:
/etc/exim4/exim4.conf.template
.
- Если вы используете конфигурацию с поддержкой разделённых файлов (split-file configuration), отредактируйте файл:
-
Добавьте или измените настройки транспорта:
В секцииremote_smtp_smarthost
, необходимо добавить строкуport = 587
. Пример:remote_smtp_smarthost: driver = smtp port = 587 hosts_require_tls = *
Эта настройка укажет exim использовать порт 587 и обеспечит, что все соединения используют TLS.
-
Обновите конфигурацию:
Выполните командуupdate-exim4.conf
, чтобы сгенерировать финальный файл конфигурации (/var/lib/exim4/config.autogenerated
). -
Перезапустите службу exim4:
Используйте командуsystemctl restart exim4
, чтобы новые конфигурации вступили в силу. -
Убедитесь в правильной настройке TLS:
Удостоверьтесь, что у вас есть действующий сертификат SSL/TLS и exim настроен его использовать. Настройки для включения TLS могут находиться в том же файле конфигурации:tls_certificate = /etc/exim4/cert.pem tls_privatekey = /etc/exim4/key.pem
-
Проверка:
Отправьте тестовое письмо и проверьте логи, чтобы удостовериться, что соединение устанавливается через порт 587.
Таким образом, ваша настройка exim4 будет оптимизирована для использования защищенных соединений и соответствовать современным требованиям безопасности. Убедитесь, что вы следуете всем рекомендациям и у вас есть актуальные сертификаты безопасности.