Задать вопрос

Как настроить Exim4, чтобы направлять всю почту домена в PHP скрипт?

Есть свежий Debian с Exim 4, и направленным на его ip доменом, куда будут приходить отписки от рассылки, по заголовкам List-Unsubscribe. Нет никакого опыта настройки Exim и любого другого MTA.

Адреса для отписки указываются уникальные по шаблону hash12345@unsubscribe.domain.com

Как принимать их всех, и направлять в скрипт?

Два дня возни навели меня на понятия router'ов, transport'ов и pipe.

Создал router:
catch_all:
debug_print = "R: catch_all for $local_part@$domain"
driver = accept
domains = unsubscribe.domain.com
transport = unsubscribe_pipe

и транспорт:
unsubscribe_pipe:
debug_print = "T: unsubscribe_pipe for $local_part@$domain"
driver = pipe
return_fail_output
path = "/bin:/usr/bin:/usr/local/bin"
command = "/usr/bin/php /var/scripts/unsubscribe.php $local_part"

Но тестовое письмо на адрес такого рода до сих пор висит в очереди (mailq), тестовый php ничего не записал в лог-файл.

Не нашёл ни одного тьюта по теме. Буду очень благодарен за пошаговый разбор полёта или ссылку на оный.
  • Вопрос задан
  • 4201 просмотр
Подписаться 4 Оценить 1 комментарий
Решения вопроса 1
sergiks
@sergiks Автор вопроса
♬♬
Как оказалось, дело в том, что мои изменения в конфиг файлах Exim не использовались. Я поверхностно полагал, что, раз внёс правки в /etc/exim4/conf.d/..., то они тут же задействуются.

Оказалось, я пропустил важный этап компиляции конфигов с помощью утилиты update-exim4.conf предварительно указаав dc_use_split_config='true' в /etc/exim4/update-exim4.conf.conf, чтобы брались конфиг-файлы из дерева директорий под /etc/exim4/conf.d/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@a_andry
Пальцем в небо — у пользователя под которым работает exim должны быть права выполнять unsubscribe.php, и писать в лог файл. Лог файл указывайте с полным путем, для теста пихайте его куда нубудь в /tmp/test.log.
На постоянную работу вместо прямой записи в лог лучше используйте системный syslog.
Ответ написан
xenon
@xenon
Too drunk to fsck
procmail для этого более заточен, мне кажется. И задача перенаправить письмо в файл или через пайп в программу обычно расписывается на первой же странице большинства гайдов-туториалов по прокмейлу. Так что пользуйте любой MTA, Exim или любой другой, его задача только принять письма и все ансабскрайбы свалить определенному пользователю, а затем прокмейл (local delivery agent) уже по своему простенькому конфигу решит, что надо в почтовые ящики класть, а что скрипту отдать, который уже отпишет отправителя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы