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

Где хранятся электронные письма sendmail?

Я пытаюсь создать сценарий автоответчика для sendmail (нет, я пока не хочу использовать заранее созданный), но не могу найти местоположение полученных писем на моем сервере. Я должен указать, что моя конфигурация не является конфигурацией по умолчанию.

Я заглянул в /root, почтовой папки там нет. (У меня нет другого пользователя, кроме root). Я заглянул в /var/mail/root, есть только некоторые журналы, которые отправляются мне по почте, но не внешняя почта, которую я получаю от пользователей.

Я проверил /var/log/maillog, но ошибок нет.

Я не знаю, где искать. Кто-нибудь может мне помочь?

Если у вас настроены каталоги, отличные от заданных по умолчанию, вы должны посмотреть свой /etc/mail/sendmail.cf, чтобы узнать, какие пути установлены.

Это не только различается между дистрибутивами ОС, но даже каталоги по умолчанию для разных версий sendmail изменены. Короче говоря, чтобы мы могли сообщить вам значения по умолчанию, нам нужно знать версию ОС И версию sendmail. По умолчанию для отбрасывания почты используются / var / spool / mail / $ USERNAME, тогда, если пользователь читает почту с помощью другого приложения, оно обычно перемещается в $ HOME / mbox.

Вот список общих почтовых каталогов:

  • / var / mail / $ USERNAME
  • / var / spool / mail / $ USERNAME
  • $ HOME / mbox
  • $ HOME / почта
  • $ HOME / Maildir

sendmail (агент транспорта почты - MTA) хранит почту в том месте, где он настроен для хранения почты. Но MTA только хранит почту, которая в настоящее время находится в очереди - доставка почты в то место, где она доступна пользователю, обрабатывается агентом доставки почты (MDA). Хотя sendmail (и другие MTA) могут действовать как MDA, это очень необычно.

Тем не менее, попытка доступа к почтовым файлам - неправильный способ реализовать автоответчик.

Это должно быть сделано как фильтр в MTA (то есть в milter) или в MDA. В milter API специально для этого разработан - а там возможно, уже есть инструменты который будет соответствовать вашим требованиям без каких-либо изменений.

Если ваш текущий MDA - это procmail, то вам повезло - это обеспечивает огромную гибкость (действительно, это самостоятельный язык программирования) для обработки почтовых сообщений. Опять же в Интернете есть много кода, который может удовлетворить ваши потребности (AFAIK нет центрального репозитория для рецептов procmail, но попробуйте Google).

Для реализации этого можно использовать даже базовый механизм .forward - но я бы не советовал этого - спустившись по маршруту procmail, вы можете форкнуть сообщение, чтобы доставка не зависела от вашего скрипта / не реализовывалась им.

Смотря как настроено, но обычное место /var/spool/mail, или некоторые дистрибутивы /var/mail. Если он не находится ни в одном из этих мест, сообщите нам, и мы начнем копать!