Назад | Перейти на главную страницу

Записывать всю исходящую почту из PHP в ящик Redhat

IP-адрес одного из наших серверов был занесен в черный список, и я хотел бы попытаться выяснить, почему. На сервере много виртуальных хостов Apache, поэтому журналы необходимо разделить по доменам и, если возможно, включить имя файла сценария PHP, инициировавшего почтовый вызов.

Почтовый сервер - Qmail, а сервер - Redhat Linux.

Это возможно? Если да, то подробно опишите, как этого добиться.

Спасибо.

Завершился переход по маршруту-оболочке sendmail с использованием следующего ресурса: http://kb.parallels.com/1711

Есть способ узнать, из какой папки был запущен сценарий PHP, отправляющий почту. Учтите, что пути могут немного отличаться от указанных ниже в зависимости от вашей ОС и версии Plesk:

1) создать скрипт / var / qmail / bin / sendmail-wrapper с содержимым:

! / bin / sh (echo X-Additional-Header: $ PWD; cat) | tee -a /var/tmp/mail.send|/var/qmail/bin/sendmail-qmail "$ @"

Обратите внимание, это должны быть две строки, включая "#! / Bin / sh". 2) затем создайте файл журнала /var/tmp/mail.send и предоставьте ему права "a + rw", сделайте оболочку e> xecutable, переименуйте старый sendmail и свяжите его с новой оболочкой: ~ # touch / var / tmp / mail.send ~ # chmod a + rw /var/tmp/mail.send ~ # chmod a + x / var / qmail / bin / sendmail-wrapper ~ # mv / var / qmail / bin / sendmail / var / qmail / bin / sendmail-qmail ~ # ln -s / var / qmail / bin / sendmail-wrapper / var / qmail / bin / sendmail 3) Подождите около часа и верните sendmail обратно:

~ # rm -f / var / qmail / bin / sendmail ~ # ln -s / var / qmail / bin / sendmail-qmail / var / qmail / bin / sendmail

Изучите файл /var/tmp/mail.send, там должны быть строки, начинающиеся с «X-Additional-Header:», указывающие на папки доменов, в которых находятся скрипты, отправляющие почту. Вы можете увидеть все папки, из которых были запущены почтовые PHP-скрипты, с помощью следующей команды:

~ # grep X-Additional /var/tmp/mail.send | grep cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e 's/HTTPD_VHOSTS_D//'

Если вы не видите вывода команды выше, это означает, что с помощью функции PHP mail () из каталога виртуальных хостов Plesk не было отправлено письмо.

Если вы используете PHP 5.3 или более позднюю версию, вы можете автоматически записывать в журнал всю необходимую информацию, скрипты оболочки не требуются:

http://php.net/manual/en/mail.configuration.php

Я не знаю о регистрации PHP-скрипта или каких-либо битов, связанных с веб-сервером, но qmail (и почти любой другой MTA) обычно регистрирует то, что было отправлено - по крайней мере, адреса MAIL FROM & RCPT TO и почтовый сервер. передал сообщение.

Вы, вероятно, можете проанализировать свои журналы qmail, чтобы понять, что было / отправлено, что могло привести к попаданию вас в черный список.
Кроме того, если вы знаете, в каком черном списке (ах) вы находитесь, это может дать вам представление о том, что происходит.