LINUX.ORG.RU
решено ФорумAdmin

Как заставить postfix отправлять письма через разные аккуанты на gmail?


0

0

Имеется несколько аккуантов на gmail (точнее - Google Apps для собственного домена). Нужно, чтобы при отправке писем разными пользователями системы (например root и apache) с помощью утилиты mail, письма отправлялись через разные аккуанты на gmail.

Кусок /etc/postfix/main.cf:

relayhost = smtp.gmail.com:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_security_options = noanonymous
/etc/postfix/saslpass:
smtp.gmail.com:587 rootuser@domain.com:passw1
smtp.gmail.com:587 apacheuser@domain.com:passw2
/etc/mail/aliases:
root: rootuser@domain.com
apache: apacheuser@domain.com
При таких настройках пользователь apache отправляет письма с ящика rootuser@domain.com, что неправильно. Вопрос: что я не понимаю и делаю не так?

Кстати говоря, postmap как бы намекает, что я не прав:

# postmap /etc/postfix/saslpass 
postmap: warning: /etc/postfix/saslpass.db: duplicate entry: "smtp.gmail.com:587"

Deleted
Ответ на: комментарий от Chumka

Погляди в сторону параметра sender_dependent_relayhost_maps

Можно пример конфигурации? А то у меня ничего не выходит.Пытаюсь делать вот по этой статье: http://www.cyberciti.biz/faq/postfix-multiple-isp-accounts-smarthost-smtp-client/, но получается фигня. Скорее всего потому, что релей у меня всего один, разные только настройки аутентификации.

Кусок /etc/postfix/main.cf:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_security_options = noanonymous
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map
/etc/postfix/relayhost_map:
rootuser@domain.com [smtp.gmail.com]:587
apacheuser@domain.com [smtp.gmail.com]:587
/etc/postfix/saslpass:
rootuser@domain.com rootuser@domain.com:passw1 
apacheuser@domain.com apacheuser@domain.com:passw2 

[smtp.gmail.com]:587 rootuser@domain.com:passw1 

Deleted
()
Ответ на: комментарий от Chumka

Может это Gmail заменяет адрес?

Gmail заменит адрес, только если postfix выдаст ему не тот логин:пароль. Возможно это и происходит. Но виноват в любом случае криво настроенный постфикс.

Deleted
()

Методом тыка мне удалось заставить postfix работать как надо. Получилось вот с таким конфигом:

/etc/postfix/main.cf:

relayhost = [smtp.gmail.com]:submission
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_security_options = noanonymous
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map
/etc/postfix/saslpass:
root rootuser@domain.com:passw1
apache apacheuser@domain.com:passw2

[smtp.gmail.com]:submission rootuser@domain.com:passw1
/etc/postfix/relayhost_map:
root [smtp.gmail.com]:submission
apache [smtp.gmail.com]:submission
Вместо имён пользователей системы (root и apache) можно писать root@localhost.localdomain и apache@localhost.localdomain соответственно, думаю это синонимы.

Остался неясным один момент: зачем нужен /etc/mail/aliases, если он ни на что не влияет? Гугль не даёт вменяемого ответа.

Deleted
()
Ответ на: комментарий от Deleted

Остался неясным один момент: зачем нужен /etc/mail/aliases, если он ни на что не влияет?

Кажется я понял - по содержимому /etc/mail/aliases подменяется не адрес отправителя, а адрес получателя. Т.е. прописав

root: admin@domain.com
при отправке почты на имя root
echo test | mail -s 'Test mail' root
она будет приходить на admin@domain.com.

Метод математического тыка рулит!

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.