В PHP начиная с версии 5.3 добавить логирование довольно просто.
Открываем файл /etc/php5/php.ini (или где он там у вас) и добавляем 2 строчки:

1
2
mail.add_x_header = On
mail.log = /var/log/php.mail.log
  • mail.add_x_header - добавляет заголовок для всех исходящих сообщений.
  • mail.log - указывает путь к лог-файлу запускаемых скриптов, адресатов и заголовков.

Убедитесь чтобы этот файл был доступен на запись веб-серверу (обычно это пользователь www-data).

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

Для проверки создайте простой php скрипт:
# vim /var/www/testmail.php

1
2
3
<?php
mail('komu@domen.com', 'тема письма', 'тело письма', 'From: ot.kogo@domen.net');
?>

и запустите его на выполнение:
# php /var/www/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 будет падать более расширенная информация:

1
mail() on [/var/www/testmail.php:3]: To: komu@domen.com -- Headers:

Вся статья скопирована в качестве заметки с сайта fb38064g.bget.ru