Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
http://www.rusdoc.ru. Версия для печати.

Обработка входящей почты на PHP

Раздел: Programming / PHP @ 18.08.2011 | Ключевые слова: mail почта на php

Автор: agorlov
Источник: habrahabr

Хочу поделиться рецептом, как совместить php-скрипт и почтовый сервер Postfix для автоматической обработки входящей почты.

С помощью такой связки мы собираем статистику по количеству возвратов bounce-писем:Undelivered Mail Returned to Sender.

На других сайтах, я встречал подобный функционал, например, чтобы публиковать контент, отправив его на закрепленный за пользователем почтовый ящик.

Как это сделать

  1. Для начала убедитесь, что у вас есть работающий почтовый сервер.

    Можно сделать отдельный почтовик в поддомене, достаточно внести 2 записи в DNS:
    rob.mydomain.ru. A ip-вашего-сервера
    
    rob.mydomain.ru. MX rob.mydomain.ru.
    
    
  2. Отредактируйте файл с алиасами /etc/aliases:
    добавьте туда строку:
    robot: "|php -q /путь/к/скрипту.php"
    robot — это название почтового ящика;
    /путь/к/скрипту.php — скрипт обрабатывающий входящие.

    после редактирования выполните команду newaliases

  3. в настройках postfix main.cf рекомендую добавить параметр:
    recipient_delimiter = +

    тогда в адресе можно будет кодировать дополнительную информацию:robot+someId@rob.mydomain.ru

    Все письма на такие адреса будет также обрабатывать наш скрипт.
    someId может быть идентификатором пользователя или любыми другими данными.
  4. создайте скрипт-обработчик писем:
  5. отправьте письмо на адрес robot@rob.mydomain.ru и загляните в лог /tmp/inb.log

Готово!



Вернуться в раздел: Programming / PHP
© Copyright 1998-2012 Александр Томов. All rights reserved.