В продолжении поста про ловлю почты postfix + dovecot. Так как предыдущий варинт оказался мне не по нраву, да и не подошел, потому что письма после фильтра теряются. Пришлось искать решение при котором письма попадают и в ящик, и на обработку php.
1 2 |
@yourdomain.tld robotscript@localhost |
Добавляем эту строчку в /etc/postfix/recipient_bcc. После сохранения запускаем в консоли «postmap /etc/postfix/recipient_bcc«. Так мы учим Postfix отправлять копии письма которые содержат «@yourdomain.tld» на адрес robotscript@localhost. Т.е. создаем catch-all адрес.
1 2 |
robotscript@localhost : |
Добавляем эту строчку в /etc/postfix/transport. После сохранения запускаем в консоли «postmap /etc/postfix/transport«. Теперь Postfix знает что письма приходящие на адрес robotscript@localhost больше никуда не передаются, а попадают сразу к нам.
1 2 3 |
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc transport_maps = hash:/etc/postfix/transport |
Эти строки идут в /etc/postfix/main.cf.
Проверьте чтобы параметр «mydestination» в /etc/postfix/main.cf содержал «localhost«.
1 2 |
robotscript: "|/path/to/your/php_script.php" |
Добавляем эту строчку в /etc/aliases. После сохранения запускаем в консоли «postalias /etc/aliases«. Теперь письма пришедшие на robotscript@localhost отправляются прямиком на наш PHP обработчик. Скрипт получает данные через STDIN.
Перезапускаем Postfix, теперь письма обрабатываются php скриптом и при этом доходят до получателя.