Журналирование исходящих писем в Debian? Как, где?

Вопрос или проблема

Мне нужно узнать, отправляло ли php-приложение массовую рассылку. Будут ли эти сообщения записаны в журнал? Как я могу узнать, включен ли журнал / как мне его настроить?

VPS работает на debian.

Я буду признателен за любую помощь, так как это не моя область.

Обычно ваш почтовый агент передачи (Mail Transfer Agent) будет записывать исходящие сообщения. Exim использует файлы журналов в /var/log/exim4. Сообщения из других MTA могут попадать в /var/log/mail.log. Это предполагает, что вы используете локальный MTA для доставки сообщений.

Запуск команды mailq от имени root может показать множество сообщений, ожидающих доставки. Это могут быть некоторые сообщения из массовой рассылки.

Если программа выполняет прямую доставку, минуя ваш MTA, тогда вам нужно будет узнать, есть ли у приложения собственный файл журнала.

Ответ или решение

Для того чтобы проверить, были ли отправлены массовые рассылки через ваше PHP-приложение на сервере Debian, вам потребуется провести анализ логирования исходящих писем. Это может включать как системные логи вашего почтового транспортного агента (MTA), так и логи самого приложения, если оно обрабатывает отправку писем самостоятельно.

1. Логи почтового транспортного агента (MTA)

Если ваше приложение использует локальный MTA, такой как Exim, Postfix или Sendmail, вы сможете найти информацию о ваших письмах в соответствующих логах:

  • Exim: Логи находятся в каталоге /var/log/exim4/. Чтобы просмотреть их, вы можете использовать команду:

    less /var/log/exim4/mainlog

    Здесь вы будете видеть записи о каждом отправленном сообщении, включая информацию о времени отправки, получателе и статусе (успех, ошибка и т.д.).

  • Postfix: Логи хранятся в файле /var/log/mail.log. Вы можете использовать команду:

    less /var/log/mail.log

    Это даст вам доступ к информации о всех операциях, связанных с отправкой и получением почты.

  • Sendmail: Для Sendmail обычно тоже используются логи в /var/log/mail.log.

2. Просмотр очереди сообщений

Вы можете выполнить команду mailq от имени пользователя root, чтобы увидеть список сообщений, ожидающих отправки. Если ваше PHP-приложение отправляет массовую почту, ее записи могут находиться в этой очереди:

mailq

3. Проверка конфигурации логирования MTA

Чтобы убедиться, что логирование сообщений включено в конфигурации вашего MTA, необходимо обратиться к конфигурационным файлам:

  • Exim: Проверьте файл конфигурации Exim, который находится по пути /etc/exim4/exim4.conf.template или /etc/exim4/exim4.conf. Убедитесь, что параметр log_file_path установлен корректно.

  • Postfix: Для Postfix проверьте файл /etc/postfix/main.cf, ищите параметр maillog_file.

Если вы внесли изменения, не забудьте перезапустить MTA для применения изменений:

sudo systemctl restart exim4  # для Exim
sudo systemctl restart postfix  # для Postfix

4. Логи PHP-приложения

Если ваше приложение отправляет почту напрямую, без использования MTA, существуют два варианта:

  • Проверьте, ведёт ли само приложение логи. В этом случае информация о рассылаемых письмах может находиться в файлах логов приложения, которые вы можете указать в конфигурационных настройках PHP или вашего фреймворка.

  • Если ваше приложение использует функцию mail(), но не ведет собственных логов, вы можете внедрить логирование в код приложения, добавив записи в файл журнала после каждой отправки письма.

Пример добавления логирования после отправки:

function sendEmail($to, $subject, $message) {
    if (mail($to, $subject, $message)) {
        file_put_contents('/path/to/your/logfile.log', date('Y-m-d H:i:s') . " - Sent email to: $to\n", FILE_APPEND);
    } else {
        file_put_contents('/path/to/your/logfile.log', date('Y-m-d H:i:s') . " - Failed to send email to: $to\n", FILE_APPEND);
    }
}

Заключение

Проведение анализа лога почтовых отправлений на сервере Debian требует проверки как логов MTA, так и потенциального логирования на уровне самого приложения. Убедитесь, что логирование включено и настроено правильно, чтобы иметь возможность отслеживать действия вашего PHP-приложения при рассылке. Если у вас возникли дополнительные вопросы, не стесняйтесь обращаться за помощью.

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

Капча загружается...