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

Postfix sasl auth только для fallback_relay

У меня есть сервер, который будет пытаться отправлять почту прямо на целевые серверы MX. Но некоторые из них отклоняют письма из-за плохой репутации MTA (вот что они говорят).

Я сделал все, чтобы улучшить репутацию, и у меня не осталось выбора.

Только несколько серверов отклоняют наши письма. Поэтому я решил использовать Postmark для отправки таких писем.

Но мне нужно настроить Postfix для использования sasl auth только для fallback_relay и не для прямой почтовой рассылки на сервер MX.

Некоторые серверы MX выдают ошибку из-за этой sasl-аутентификации (например, hotmail). Серверы Google принимают без проблем.

#my configuration
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:key:key
smtp_sasl_security_options = noanonymous
fallback_relay = [smtp.postmarkapp.com]:25

Я столкнулся с той же проблемой. Чтобы расширить ответ mailq и дать ему немного больше подробностей, вот что я сделал для решения своей проблемы.

# old main.cf
smtp_sasl_password_maps = static:username:password

# new main.cf
smtp_sasl_password_maps = hash:/etc/postfix/smtp_sasl_password_maps

Чтобы сгенерировать файл smtp_sasl_password_maps.db, вам необходимо создать текстовый файл со следующим:

smtp.sendgrid.net = username:password

Обратите внимание на отсутствие здесь префикса «static». Оттуда вы просто запускаете (как root):

postmap /etc/postfix/smtp_sasl_password_maps
service postfix restart

Ключевым моментом здесь является то, что если в карте паролей SASL нет совпадения имени хоста, то он продолжился. без аутентификации.

Если имя пользователя: пароль не найдены, то SMTP-клиент Postfix не будет пытаться аутентифицироваться на удаленном хосте.

Это ожидаемое поведение при использовании «статической» карты. Следуя руководству http://www.postfix.org/postconf.5.html#smtp_sasl_password_maps вам нужно настроить как минимум хеш-карту для smtp_sasl_password_maps.

Файл хеш-карты должен содержать одну строку с

smtp.postmarkapp.com   user:password

Это использует sasl только для указанного хоста.