Postfix - отправлять только отклоненные письма через smarthost
Я пытаюсь улучшить доставку почты для организации, с которой я работаю (без спама). Мы использовали SMTP-сервер нашей обычной почтовой службы в качестве промежуточного узла для доставки, но недавно они заблокировали учетную запись, поскольку она отправляла слишком много почты.
Я посмотрел и подписался на службу ретрансляции SMTP, но это довольно дорого. Причина, по которой я не хочу отправлять почту напрямую, заключается в том, что крайне важно, чтобы вся почта доставлялась, и я не хочу тратить много времени на проверку журналов, чтобы убедиться, что наша почта всем доступна.
Поэтому мне было интересно - можно ли настроить postfix так, чтобы он сначала пытался отправлять почту напрямую, а если это не удалось, то отправлять почту через промежуточный узел? Это должно позволить нам отправлять почту всем, но без необходимости платить за отправку всей почты через SMTP-ретранслятор.
1 ответ
Я думаю, что это может работать так, как вы хотите, если вы запускаете два параллельных экземпляра postfix на одной и той же машине, с "отложенным" каталогом очереди экземпляра, отправляющего нормально связанный (я думаю, что symlink будет в порядке) в "входящий" каталог 2-й экземпляр настроен для маршрутизации на смарт-хост. Экземпляр 1 должен попытаться доставить; если это не удастся, он запишет его в отложенную очередь, qmgr которого экземпляра 2 будет обрабатывать как новую почту и направлять на смарт-хост.
(Вам может потребоваться выполнить некоторую настройку в экземпляре 1, чтобы настроить то, как он повторяет то, что видит в общем каталоге, и, возможно, существуют все виды проблем блокировки и состояния гонки.)
Лучшим решением, вероятно, будут все еще 2 параллельных экземпляра, но без общего каталога, и сценарий, который сканирует отложенную очередь экземпляра 1, использует postsuper для удержания, копирует его во входящую очередь экземпляра 2 и удаляет его из экземпляра 1. Это может вызываться с помощью cron каждые несколько минут или, возможно, с помощью inotify hook.