Go to content Go to menu Go to search

Включение лога функции mail() в PHP (определяем кто отправляет спам с сайта)

Задача

Есть LAMP сервер с десятком вордпрессов. Необходимо выяснить кто из вордпрессов рассылает спам.

Решение

В php5.3 и выше есть возможность включить лог. для этого:

1). В php.ini добавляем:

mail.add_x_header  on
mail.log     /var/log/php-mail.log

2). Создаем файл и назначаем пава:

touch /var/log/php-mail.log
chmod 666 /var/log/php-mail.log

3). Сделаем конфиг для логротейт /etc/logrotate.d/php-mail:

/var/log/php-mail.log {
    missingok
    notifempty
    compress
    daily
    rotate 7
    create 666
}

По умолчанию в лог пишется информация об отправителе, получателе и пути до скрипта, из которого вызывается функция mail().
В случае с wordpress, все его плагины отправляют письма через класс class-phpmailer. Т.е. если нам необходимо выяснить какой конкретно плагин или скрипт отправляет почту, то необходимо включить дебаг. Для этого в файле wp-includes/class-phpmailer.php перед строкой 769 (вызов функии mail) добавить debug-backtrace.

Как проверить?

Вот так:

<?php 
   mail("pupkin@mail.ru", "test1", "Line 1\nLine 2\nLine 3"); 
?>


при публикации материалов с данного сайта обратная ссылка на сайт обязательна.
valynkin.ru © no rights reserved