Назад | Перейти на главную страницу

Ретрансляция Postfix на несколько серверов и нескольких пользователей

В настоящее время у меня настроен постфикс, чтобы все пользователи получали ретрансляцию с локальной машины, за исключением один пользователь который передается через Gmail. Для этого я добавил следующую конфигурацию:

/etc/postfix/main.cf

# default options to allow relay via gmail
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_sasl_security_options = noanonymous

# map the relayhosts according to user 
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_maps

# keep a list of user and passwords
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

/ и т.д. / постфикс / relayhost_maps

user-one@localhost   [smtp.gmail.com]:587

/ и т.д. / постфикс / sasl_passwd

[smtp.gmail.com]:587  user-one-at-google@gmail.com:user-one-pass-at-google

Я знаю, что могу сопоставить нескольких пользователей с несколькими паролями с помощью smtp_sasl_password_maps, но это будет означать, что все ретрансляции будут выполняться через gmail, где я специально хочу, чтобы все ретрансляции выполнялись локальным хостом, за исключением некоторых пользователей.

Теперь я хотел бы иметь реле user-two @ localhost (etc) через google с их собственными паролями. Это возможно?

Установить параметр smtp_sender_dependent_authentication к да. Затем вы можете использовать адрес отправителя пользователя в качестве ключа поиска для smtp_sasl_password_maps.

Ссылки: официальная документация и эта страница

На практике вам нужно просто изменить ключ в вашем sasl_passwd на основе пользователя. В соответствии с вашим примером просто добавьте обоих пользователей в relayhost_maps файл и измените следующий файл:

/ и т.д. / постфикс / sasl_passwd

user-one@localhost       user-one-at-google@gmail.com:user-one-pass-at-google
user-two@localhost       user-two-at-google@gmail.com:user-two-pass-at-google