Вопрос или проблема
Я не опытный администратор postfix
, поэтому, возможно, для моей следующей проблемы есть простое решение:
У меня есть личный SMTP сервер, работающий на Ubuntu 24.04 с postfix 3.8.6.
На (скажем) mydomain.com
определено несколько адресов электронной почты, и я перенаправляю письма, приходящие на эти адреса, на соответствующие аккаунты gmail, используя файл конфигурации /etc/postfix/valiases
, который выглядит примерно так:
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected]
[email protected] [email protected], [email protected]
[email protected] [email protected], [email protected]
...
Эта конфигурация работает большую часть времени, за исключением некоторых писем, приходящих с серверов электронной почты с жестко настроенными SPF (например, [email protected]
). В этом случае серверы gmail отклоняют такие пересланные письма с сообщением, подобным этому:
550-5.7.26 Домен MAIL FROM [otherdomain.com] имеет запись SPF 550-5.7.26 с жесткой политикой отказа (-all), однако проверка SPF не прошла 550-5.7.26 с ip: [a.b.c.d]. Чтобы лучше защитить наших пользователей от 550-5.7.26 спама и фишинга, сообщение было заблокировано. Для получения инструкций о 550-5.7.26 настройке аутентификации перейдите по адресу 550 5.7.26 https://support.google.com/mail/answer/81126#authentication d2e1a72fcca58-71ec144d346si5857955b3a.303 – gsmtp
Здесь a.b.c.d — это IP-адрес моего SMTP (postfix) сервера. Очевидно, что gmail не примет письма, приходящие с IP-адреса моего сервера и имеющие в поле From: (или, на самом деле, поле Return-Path:) что-то подобное [email protected]
.
Чтобы решить эту проблему, я использую файл конфигурации /etc/postfix/canonical
так:
@otherdomain.com [email protected]
@yetanotherdomain.com [email protected]
...
Благодаря этой конфигурации postfix добавляет заголовок, как:
Return-Path: <[email protected]>
к письмам, приходящим с вышеуказанных доменов.
В результате gmail принимает это письмо:
ARC-Authentication-Results: i=1; mx.google.com;
spf=pass (google.com: домен [email protected] назначает a.b.c.d как разрешенного отправителя) [email protected];
dmarc=fail (p=REJECT sp=NONE dis=QUARANTINE) header.from=otherdomain.com
Это работает для доменов, перечисленных в файле конфигурации /etc/postfix/valiases
, как я показал выше. Однако мне нужно более общее решение, которое будет охватывать все домены.
Обратите внимание, что мой сервер postfix контролирует SPF записи и отклоняет спам-письма. Поэтому мне не нужна проверка SPF от gmail. И решение, которое мне нужно — это общий метод пересылки всех писем так, как будто они происходят от mydomain.com
. Как я могу сделать это в postfix?
Ответ или решение
Чтобы настроить пересылку писем в Postfix с вашего SMTP-сервера, чтобы все письма поступали от домена вашего почтового сервера (например, mydomain.com
), есть несколько шагов, которые вам нужно будет выполнить. Это решение поможет избежать проблем с проверкой SPF от других доменов и гарантирует, что ваши пересылаемые письма не будут блокироваться Gmail или другими почтовыми провайдерами.
1. Используйте Canonical Mapping
Для того, чтобы все ваши исходящие письма имели From
или Return-Path
, соответствующий вашему домену, необходимо настроить canonical
маппинг. Это позволит вам переписывать адреса отправителей всех входящих писем на ваш домен.
Шаги:
-
Создайте или отредактируйте файл
/etc/postfix/canonical
Добавьте следующую строку для перенаправления всех внешних отправителей на ваш домен:
@* [email protected]
Эта строка указывает, что все сообщения от любых доменов (
@*
) будут перенаправляться с адресаyourdomain.com
. -
Настройте Postfix на использование Canonical Mapping
В файле
/etc/postfix/main.cf
добавьте или отредактируйте следующие строки:sender_canonical_maps = hash:/etc/postfix/canonical
-
Обновите и создайте хэш-таблицу
После редактирования файла
canonical
, выполните команду:sudo postmap /etc/postfix/canonical
2. Настройка доступа для пересылаемых сообщений
Убедитесь, что ваше правило пересылки с помощью файла valiases
осталось в силе. Это позволяет перенаправлять письма на адреса Gmail, но теперь их отправитель будет выглядеть так, как будто они отправляются с вашего собственного домена.
3. Настройка SPF для вашего домена
Чтобы свести к минимуму вероятность того, что Gmail пометит пересылаемые письма как спам, убедитесь, что у вас правильно настроены SPF-записи для вашего домена. Это позволит вашим писем проходить проверку, когда они будут отправлены через ваш сервер. SPF-запись может выглядеть примерно так:
v=spf1 a mx ip4:a.b.c.d -all
Замените a.b.c.d
на IP-адрес вашего сервера.
4. Перезагрузка Postfix
После всех изменений необходимо перезагрузить Postfix, чтобы изменения вступили в силу:
sudo systemctl restart postfix
5. Тестирование
Отправьте тестовое письмо с одного из доменов, чтобы убедиться, что адреса отправителей корректно переписываются, и вы не получаете ошибок от Gmail.
Заключение
Следуя описанным шагам, вы сможете настроить пересылку всех входящих писем на Gmail-адреса так, чтобы они имели правильный адрес отправителя. Это улучшит доставляемость и сократит вероятность блокировки писем вашим почтовым провайдером. Надеемся, данное решение окажется полезным для вас в управлении вашим почтовым сервером на Ubuntu с использованием Postfix.