- Вопрос или проблема
- Имя хоста
- Проблемы с подключением к SMTP и Hetzner
- FAQ: Почему я не могу отправлять почту с моего сервера?
- Ответ или решение
- Проблема с отправкой почты через Postfix: не тот отправитель
- Контекст
- Проблема с неверным отправителем
- Проблемы с подключением к SMTP и блокировка портов
- Рекомендации
- Заключение
Вопрос или проблема
Следующие элементы
/home/deploy# postconf myhostname
myhostname = sendonly.domain.top
root@ubuntu-4gb-nbg1-1:/home/deploy# postconf mydomain
mydomain = domain.top
root@ubuntu-4gb-nbg1-1:/home/deploy# postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
87C5DDD44B* 418 Mon Jan 6 13:02:36 root@ubuntu-4gb-nbg1-1
[email protected]
приводят к таймауту на почтовом сервере получателя.
connect to in-smtp.someengine.com[111.222.333.444]:25: Connection timed out
и отправитель почты идентифицирован как
from=<root@ubuntu-4gb-nbg1-1>
в mail.log
sendonly.domain.top
и domain.top
имеют правильные DNS A записи и TXT SPF записи, позволяющие ip4:111.222.333.444
Поставщик услуг (в данном случае Hetzner) имеет обратную DNS запись для основного IPv4 адреса, установленную на domain.top
Я предположил, что это строка отправителя почты, которая отклоняется MX-сервером. Но когда я сделал mail -s 'subject' "From: [email protected]" [email protected]
правильный отправитель появился в журнале.
Так в чем может быть недостаток конфигурации?
Имя хоста
Параметр конфигурации Postfix, который задает доменное имя по умолчанию для исходящих сообщений, это myorigin
. Хотя он по умолчанию равен $myhostname
, видеть сообщения, поступающие от root@hostname
, а не от [email protected]
, который настроен в myhostname
, указывает на одно из следующего.
- Вы имеете нестандартную конфигурацию для параметра
myorigin
. Проверьтеsudo postconf myorigin
- Вы изменили конфигурацию, не перезапустив Postfix. Попробуйте
sudo systemctl reload postfix
- Эти сообщения были отправлены до изменения конфигурации.
Однако ошибка, которую вы получили, не связана с именем хоста.
Проблемы с подключением к SMTP и Hetzner
connect to in-smtp.example.org[192.0.2.1]:25: Connection timed out
Как говорится в сообщении об ошибке на английском языке, соединение было прервано по таймауту. Сообщение не было отклонено in-smtp.example.org
, но возникла проблема с подключением SMTP между вашим сервером и 192.0.2.1
.
По политике Hetzner, порты 25 и 465 заблокированы по умолчанию и не могут быть мгновенно открыты для новых клиентов.
FAQ: Почему я не могу отправлять почту с моего сервера?
К сожалению, спамеры и мошенники любят использовать облачных хостинг-провайдеров. И мы в Hetzner естественно хотим предотвратить это. Поэтому мы блокируем порты 25 и 465 по умолчанию на всех облачных серверах. Это очень распространённая практика в индустрии облачных хостингов, так как она предотвращает злоупотребления. Мы хотим установить доверительные отношения с нашими новыми клиентами, прежде чем разблокировать эти почтовые порты. Как только вы будете с нами месяц и оплатите свой первый счёт, вы можете создать запрос на снятие ограничений на разблокировку этих портов для обоснованного использования. В своём запросе вы можете рассказать нам подробности об использовании. Мы принимаем решения в каждом случае индивидуально.
.
Ответ или решение
Проблема с отправкой почты через Postfix: не тот отправитель
Контекст
Проблема, с которой сталкивается пользователь, заключается в том, что Postfix сообщает неправильно указанного отправителя в заголовках писем, а также испытывает таймауты при подключении к SMTP-серверу получателя. Давайте разберем каждую из этих проблем.
Проблема с неверным отправителем
Параметр myorigin
в конфигурации Postfix отвечает за определение домена, используемого в качестве отправителя по умолчанию для исходящих сообщений. Если сообщения отправляются с адреса root@ubuntu-4gb-nbg1-1
вместо ожидаемого [email protected]
, это может означать следующее:
- Неисправленная конфигурация
myorigin
: Убедитесь, что значениеmyorigin
соответствуетmyhostname
. Проверка:sudo postconf myorigin
. - Требуется перезагрузка Postfix: Возможно, изменение конфигурации было произведено без перезагрузки сервиса. Команда для перезагрузки:
sudo systemctl reload postfix
. - Устаревшие кэшированные сообщения: Сообщения, которые уже были в очереди, могли отправляться до изменения конфигурации.
Проблемы с подключением к SMTP и блокировка портов
Сообщение об ошибке connect to in-smtp.someengine.com[111.222.333.444]:25: Connection timed out
указывает на проблему с подключением к SMTP-серверу, а не на отказ сервера получателя в принятии письма. В данном случае, вероятная причина кроется в блокировке портов вашим хостинг-провайдером.
Hetzner, как и многие другие провайдеры, по умолчанию блокирует порты 25 и 465 для предотвращения спама. Чтобы открыть эти порты, необходимо подать заявку через панель управления, после того как вы проработаете у него месяц и оплатите первый счет.
По политике Hetzner, порты 25 и 465 заблокированы по умолчанию, и их нельзя мгновенно открыть для новых клиентов. После месяца обслуживания и оплаты первой счета, вы можете подать заявку на их разблокировку, указав причину.
Рекомендации
1. Проверьте и, при необходимости, скорректируйте конфигурацию myorigin
в Postfix.
2. Перезагрузите службу Postfix, чтобы убедиться, что изменения применены.
3. Подтвердите, что это не старые сообщения, которые уже находились в очереди перед изменением конфигурации.
4. Свяжитесь с хостинг-провайдером Hetzner для разблокировки портов 25 и 465, указав легитимные причины для использования.
Заключение
Решение данной проблемы требует комплексного подхода, который включает восстановление корректной конфигурации системы отправки сообщений и преодоление сетевых ограничений, установленных провайдером. Убедитесь, что все параметры системы соответствуют вашим ожиданиям, и планируйте взаимодействие с поддержкой Hetzner для разблокировки необходимых портов.