Обработка возврата почты с помощью PHP

Я пытаюсь обработать ошибки из возвращенной электронной почты. Это мой сценарий:

  • Отправляйте электронные письма с помощью Pear Mail() +Mail_Mime();
  • Установите «Return-Path» и «Return-Recipient-To», чтобы получать ошибки в «[email protected]»;

Теперь, используя упомянутый здесь класс (Как обрабатывать ошибки доставки почты с помощью PHP) Я хочу прочитать почтовую папку, содержащую сообщения об ошибках доставки.

Путь похож на "/home/domain-name/mail/domain-name.com/bounce/new/", но когда я запускаю класс, я получаю сообщение об ошибке "не удалось открыть каталог: разрешение отклонено..."

Dir /mail/ — 770 chmod, /domain-name/ — 750 chmod, /bounce/ — 750 chmod, /new/ — 700 chmod. Думаю, мне следует изменить разрешение, но я не знаю, как это может сделать почтовую папку менее безопасной.


person Luciano    schedule 29.07.2010    source источник
comment
Изменение владельца этих каталогов с пользователем php/apache? Просто догадываюсь, я не уверен, что это правильный ответ на ваш вопрос.   -  person dierre    schedule 29.07.2010


Ответы (1)


Я предполагаю, что ваш веб-сервер работает как apache или nobody, который не является владельцем почтовой папки (поэтому он будет иметь 0 в качестве разрешения - что ничего)

Вам либо нужно запустить веб-сервер от имени этого пользователя (я бы этого не сделал), либо изменить разрешение на папку, чтобы веб-сервер мог читать папку

person Mitch Dempsey    schedule 29.07.2010
comment
@webdestroya: Спасибо! Как я могу изменить разрешение на папку? Вы имеете ввиду чмод? - person Luciano; 29.07.2010
comment
@ Лучано - Да, chmod будет работать. Вам нужно добавить +r и +x в папку - person Mitch Dempsey; 29.07.2010
comment
@webdestroya: я изменил chmod на 755, но все равно получаю ту же ошибку ... не эксперт по серверу apache. :| - person Luciano; 29.07.2010
comment
@Luciano - вам, вероятно, нужно применить его рекурсивно chmod -R 755 /path/to/folder - person Mitch Dempsey; 29.07.2010
comment
@webdestroya: я рекурсивно изменил chmod, но теперь у меня проблема с чтением файла доставки. Он установлен на chmod 600, если я изменю его вручную на 644, все будет хорошо, но мне нужно сделать это в моем скрипте, а php-chmod не работает. - person Luciano; 30.07.2010
comment
@Luciano - Тогда, похоже, вам придется сменить почтовый сервер, который записывает этот файл. Кроме того, я не уверен - person Mitch Dempsey; 30.07.2010
comment
Мне удалось заставить это работать! Черт, да. :) Сначала чтение почтовой папки через ftp_nlist() и просмотр файлов с помощью foreach. Затем скопируйте каждый файл в папку /bounced/ в мой корень с помощью ftp_fget(). Наконец, прочитайте отчеты, используя класс bounce_handler, и запишите результат в базу данных. Когда я закончу этот скрипт, я обновлю вопрос своим грубым решением. - person Luciano; 30.07.2010