Логирование PHP скриптов отправляющих почту

Опубликовано admin -

Сегодня я расскажу как можно вести лог скриптов, что отправляют почту методами PHP.
Это удобно, если у вас на сервере поселился спаммер и вы не знаете где его искать, т.к.
сами пути запускающих скриптов по-умолчанию не падают в /var/log/syslog или в /var/log/mail.log.

В PHP начиная с версии 5.3 добавить логирование довольно просто.
Открываем файл php.ini

# nano /etc/php5/php.ini

И добавляем 2 строчки:

mail.add_x_header = On
mail.log = /var/log/php.mail.log


mail.add_x_header добавляет заголовок для всех исходящих сообщений.
mail.log указывает путь к лог-файлу запускаемых скриптов, адресатов и заголовков.
Убедитесь чтобы этот файл был доступен на запить веб-серверу (обычно это пользователь www-data).

# touch /var/log/php-mail.log
# chown www-data:www-data /var/log/php-mail.log

Для проверки создайте простой php скриптик:

# nano /var/www/testmail.php
<?php
   mail('komu@mail.ru', 'тема письма', 'тело письма', 'From: ot.kogo@mail.ru');
?>


и запустите его на выполнение:

# php testmail.php

# tail -f /var/log/phpmail.log

Пусто хммм не знаю чего, но логи не отоброзились, в Exim /var/log/exim4/mainlog все окей письмо ушло.
если запутить браузер http://localhost/testmail.php все работает :)

# tail -f /var/log/phpmail.log

Теперь в заголовках письма будет вставляться следующее:
X-PHP-Originating-Script: 0:testmail.php

Где 0 — это UID, а testmail.php — это имя файла скрипта.

В лог /var/log/phpmail.log будет падать более расширенная информация:
mail() on [/var/www/testmail.php:3]: To: roman@romantelychko.com -- Headers:

Теги

Добавить комментарий

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA
8 + 1 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.