Блог очередного разработчика

Sanasol

Снова обработка писем Postfix + Dovecot

В продолжении поста про ловлю почты postfix + dovecot. Так как предыдущий варинт оказался мне не по нраву, да и не подошел, потому что письма после фильтра теряются. Пришлось искать решение при котором письма попадают и в ящик, и на обработку php.

Добавляем эту строчку в /etc/postfix/recipient_bcc. После сохранения запускаем в консоли «postmap /etc/postfix/recipient_bcc«. Так мы учим Postfix отправлять копии письма которые содержат «@yourdomain.tld» на адрес robotscript@localhost. Т.е. создаем catch-all адрес.

Добавляем эту строчку в /etc/postfix/transport. После сохранения запускаем в консоли  «postmap /etc/postfix/transport«. Теперь Postfix  знает что письма приходящие на адрес robotscript@localhost больше никуда не передаются, а попадают сразу к нам.

Эти строки идут в  /etc/postfix/main.cf.

Проверьте чтобы параметр «mydestination» в /etc/postfix/main.cf содержал «localhost«.

Добавляем эту строчку в /etc/aliases. После сохранения запускаем в консоли «postalias /etc/aliases«. Теперь письма пришедшие на robotscript@localhost отправляются прямиком на наш PHP обработчик. Скрипт получает данные через STDIN.

Перезапускаем Postfix, теперь письма обрабатываются php скриптом и при этом доходят до получателя.

Ловим почту php-скриптом [Postfix]

Задача: автоматическая обработка почты и запись данных в mysql базу.

Dovecot и Postfix

Для начала нужно установить Dovecot и Postfix (я ставил версию с mysql)

Установка сервера приема почты это долгое и неблагодарное занятие которое съело у меня 6 часов, поэтому описывать это я не буду, гайдов полно в гугле.

Затем через postfixadmin версии 2.3.6 добавил catch all(т.е. все письма отправленные на любой адрес(даже не существующий) попадающие на наш сервер идут на одну почту) адрес с которого собирается почта на уже другой локальный ящик(тоже созданный в админке)

Сам фильтр добавить не трудно, проблема скорее в разборе письма… Пытался установить mailparse в php, но он отказался компилироваться, пришлось изобретать велосипед.

(далее…)