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


10

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

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

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

У меня нет идей, где искать. Кто-нибудь может мне помочь?

Ответы:


6

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

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

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

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

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


У меня установлен procmail (procmail-3.22-17.1.el5.centos.x86_64), но я не уверен, что он используется. Я также читал о скрипте автоответа, который использует procmail, что может быть полезно для меня. Могу ли я узнать, используется ли procmail?
Эдуард Лука

1
Не могли бы вы разместить содержимое вашего sendmail.cfфайла в начале строки Mlocal, которая расскажет нам, какой MDA используется.
MadHatter

Да, это procmail. Yaay! P=/usr/bin/procmailэто код. Спасибо :)
Эдуард Лука

Но у меня нет procmailrcфайла. Заставляет меня задуматься, действительно ли мой sendmail + procmail используется.
Эдуард Лука

Если он настроен в sendmail и ваша почта доставляется, то он использует procmail (с компилированными значениями по умолчанию). Смотрите man-страницу для procmail - обычно она проверяет наличие / etc / procmailrc и ~ / .procmailrc, и если ничего не найдено, она доставляет почту в соответствии с конфигурацией во время компиляции.
Symcbean

6

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

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

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

  • / Вар / почта / $ USERNAME
  • / Вар / катушка / почты / $ USERNAME
  • $ HOME / Mbox
  • $ HOME / почта
  • $ HOME / Maildir

Спасибо, но под каким именем переменной я должен искать его в файле конфигурации? Я прочитал кое-что о, $MAIL = но я не могу найти это в файле конфигурации. Я проверил / var / spool / mail / root, там есть несколько писем, но не правильных (и я уверен, что они не были прочитаны, так как я отправил электронное письмо и быстро проверил файл - там не было)
Эдуард Лука

3

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


Есть несколько писем, /var/spool/mail/rootно только локальные (отправленные из root в root).
Эдуард Лука

Что еще в /var/spool/mail?
MadHatter

Файл с именем, rpcкоторый полностью пуст.
Эдуард Лука
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.