Вопрос или проблема
Я использую mailcow-dockerized для отправки электронных писем (письма для подтверждения и приветственные письма). У меня настроено много доменов с почтовыми ящиками для каждого, и я хочу, чтобы все письма, отправленные с [email protected] и [email protected], пересылались на SMTP-ретранслятор Google Workspace, если адрес электронной почты получателя не принадлежит к серии (@mail1.com, @mail2.com).
Мои конфигурационные файлы postfix:
###file data/conf/postfix/extra.cf:
relayhost =
transport_maps = hash:/opt/postfix/conf/transport
sender_dependent_relayhost_maps = hash:/opt/postfix/conf/sender_relay
smtp_use_tls=yes
smtp_tls_security_level=encrypt
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/opt/postfix/conf/sasl_passwd
smtp_sasl_security_options=noanonymous
smtp_helo_name=maildomain.com
###file data/conf/postfix/transport:
mail1.com smtp:
mail2.com smtp:
###File data/conf/postfix/sasl_passwd
smtp-relay.gmail.com]:587 [email protected]:apppassword1
[smtp-relay.gmail.com-support]:587 [email protected]:apppassword2
###File data/conf/postfix/sender_relay:
[email protected] [smtp-relay.gmail.com]:587
[email protected] [smtp-relay.gmail.com]:587
Конечно, я выполнил postmap transport sasl_passwd sender_relay.
Проблема, с которой я сталкиваюсь, заключается в том, что письма по-прежнему пересылаются на @mail1, @mail2.
Ответ или решение
Настройка SMTP-релей на базе Postfix для использования с Gmail
В данном ответе мы рассмотрим, как настроить реле SMTP в Postfix для отправки email-сообщений через сервер Gmail, исключая определенные домены, такие как @mail1.com
и @mail2.com
. Это актуальная задача для организаций, использующих Mailcow или другие почтовые системы, которые требуют отправку уведомлений и верификаций через Gmail.
1. Обзор конфигурации Postfix
Ваш текущий конфигурационный файл Postfix состоит из нескольких ключевых компонентов:
- extra.cf: где определяются основные настройки реле и безопасность.
- transport: отвечает за маршрутизацию почты по определенным доменам.
- sasl_passwd: содержит учетные данные для аутентификации SMTP.
- sender_relay: определяет, какие исходящие адреса должны использовать конкретные релейные хосты.
Однако, как вы указали, сообщения все равно отправляются через Gmail и для указанных доменов. Это может быть связано с отсутствием корректной настройки исключений в конфигурации.
2. Правильная настройка исключений доменов
Ваше текущее состояние transport_maps
настроено на использование реле для mail1.com
и mail2.com
, но мы можем улучшить логику обработки почты для исключения этих доменов. Убедитесь, что в файле transport указаны правильные настройки и логику.
Пример введения:
# Указываем, что почта для @mail1.com и @mail2.com обрабатывается локально
mail1.com local:
mail2.com local:
3. Настройка sender_dependent_relayhost_maps
Файл sender_relay уже корректно указывает, какие отправители должны использовать релейный хост Gmail. Однако, вам необходимо убедиться, что все адреса, которые не относятся к доменам @mail1.com
и @mail2.com
, направляются на релейный SMTP-сервер.
Также стоит добавить wildcard или обобщенные правила, если это необходимо.
Пример:
# Все остальные отправители используют реле на Gmail
* smtp-relay.gmail.com]:587
4. Проверка конфигурации Postfix
После внесения изменений в конфигурационные файлы необходимо выполнить команду postmap
для обновления хэш-таблиц:
postmap /opt/postfix/conf/transport
postmap /opt/postfix/conf/sasl_passwd
postmap /opt/postfix/conf/sender_relay
Затем перезапустите Postfix, чтобы обновить его конфигурацию:
sudo systemctl restart postfix
5. Тестирование конфигурации
После успешной перезагрузки Postfix, выполните тесты на отправку email-сообщений с различных адресов. Убедитесь, что:
- Письма от
user@mail1.com
иuser@mail2.com
и далее отправляются стандартно, но не через Gmail. - Письма от других доменов идут через Gmail.
Вы можете использовать команды, такие как mail
или sendmail
, для тестирования, а также просматривать логи Postfix, чтобы отследить отправку и ошибки.
6. Заключение
Убедитесь, что ваша конфигурация Postfix подходит для сценариев сервера. Настройка исключений для реле SMTP позволяет избежать путаницы и гарантирует, что все электронные письма отправляются через правильные каналы. Не забывайте следить за логами и осуществлять периодические проверки работоспособности системы.
Для дальнейших вопросов или более детального анализа, не стесняйтесь обратиться за помощью.