Gdzie są przechowywane wiadomości e-mail sendmail?


10

Próbuję zbudować skrypt autorespondera dla sendmaila (nie, nie chcę jeszcze używać gotowego), ale wydaje mi się, że nie mogę znaleźć lokalizacji otrzymanych wiadomości e-mail na moim serwerze. Muszę określić, że moja konfiguracja nie jest domyślna.

Zajrzałem do środka /root, nie ma tam folderu poczty. (Nie mam innego użytkownika niż root). Zaglądałem /var/mail/root, są tylko niektóre dzienniki wysyłane do mnie pocztą, ale nie poczta zewnętrzna otrzymywana od użytkowników.

Sprawdziłem /var/log/maillog, ale nie ma błędów.

Nie mam pomysłów, gdzie szukać. Czy ktoś może mi pomóc?

Odpowiedzi:


6

sendmail (agent transportu poczty - MTA) przechowuje pocztę w miejscu, w którym jest skonfigurowany do przechowywania poczty. Ale MTA przechowuje tylko pocztę, którą obecnie ustawia w kolejce - dostarczanie poczty do miejsca, w którym jest ona dostępna dla użytkownika, jest obsługiwane przez agenta dostarczającego pocztę (MDA). Chociaż sendmail (i inne MTA) może działać jako MDA, jest to bardzo niezwykłe.

Niezależnie od tego próba uzyskania dostępu do plików poczty nie jest właściwym sposobem na wdrożenie autorespondera.

Należy to zrobić jako filtr w MTA (tj. Milter) lub w MDA. Milter API jest specjalnie zaprojektowany do tego - i nie może być już dostępne narzędzia , które spełniają swoje wymagania, bez modyfikacji.

Jeśli Twoim obecnym MDA jest procmail, to masz szczęście - zapewnia to ogromną elastyczność (w istocie sam język programowania) do obsługi wiadomości e-mail. Znów w Internecie jest dużo kodu, który może zaspokoić twoje potrzeby (AFAIK nie ma centralnego repozytorium dla przepisów procmail - ale spróbuj google).

Nawet podstawowy mechanizm .forward może być użyty do zaimplementowania tego - ale odradzam to - przechodząc w dół trasy procmaila, możesz rozdzielić wiadomość, aby dostarczanie nie było zależne od / zaimplementowane przez twój skrypt.


Mam zainstalowany procmail (procmail-3.22-17.1.el5.centos.x86_64), ale nie jestem pewien, czy jest używany. Przeczytałem również o skrypcie automatycznej odpowiedzi, który używa procmaila, co może być dla mnie przydatne. Czy mogę sprawdzić, czy procmail jest w użyciu?
Eduard Luca,

1
Czy możesz opublikować zawartość sendmail.cfpliku wokół rozpoczynającej się linii Mlocal, która powie nam, z czego korzysta MDA.
MadHatter

Tak, to procmail. بله P=/usr/bin/procmailjest kodem. Dziękuję :)
Eduard Luca,

Ale nie mam procmailrcpliku. Zastanawiam się, czy moje sendmail + procmail są naprawdę używane.
Eduard Luca,

Jeśli jest skonfigurowany w sendmail, a twoja poczta jest dostarczana, to używa procmaila (z domyślnymi ustawieniami). Zobacz stronę podręcznika dla procmaila - zwykle zawiera on pliki / etc / procmailrc i ~ / .procmailrc, a jeśli nie zostaną znalezione, to dostarcza pocztę zgodnie z konfiguracją w czasie kompilacji.
symcbean

6

Jeśli masz skonfigurowane katalogi inne niż domyślne, powinieneś spojrzeć na /etc/mail/sendmail.cf, aby zobaczyć, jakie ścieżki są ustawione.

Różni się to nie tylko między dystrybucją systemu operacyjnego, ale zmieniły się nawet domyślne katalogi między różnymi wersjami sendmaila. Krótko mówiąc, abyśmy mogli powiedzieć Ci o ustawieniach domyślnych, musimy znać wersję systemu operacyjnego ORAZ wersję sendmaila. Domyślne wartości to / var / spool / mail / $ USERNAME dla upuszczenia poczty, a następnie, jeśli użytkownik czyta pocztę za pomocą innej aplikacji, zwykle jest przenoszony do $ HOME / mbox.

Oto lista popularnych katalogów pocztowych:

  • / var / mail / $ USERNAME
  • / var / spool / mail / $ USERNAME
  • $ HOME / mbox
  • $ HOME / poczta
  • $ HOME / Maildir

Dzięki, ale pod jaką nazwą zmiennej powinienem ją wyszukać w pliku konfiguracyjnym? Przeczytałem już coś, $MAIL = ale nie mogę tego znaleźć w pliku konfiguracyjnym. Sprawdziłem / var / spool / mail / root, jest tam kilka maili, ale nie są właściwe (i jestem pewien, że nie zostały przeczytane, ponieważ wysłałem e-mail i szybko sprawdziłem plik - nie było).
Eduard Luca,

3

To zależy od tego, jak jest skonfigurowane, ale zwykle jest to miejsce /var/spool/maillub niektóre dystrybucje /var/mail. Jeśli nie ma go w żadnym z tych miejsc, daj nam znać, a zaczniemy kopać !


Istnieje kilka wiadomości e-mail w, /var/spool/mail/rootale tylko wiadomości lokalne (wysyłane z katalogu głównego do katalogu głównego).
Eduard Luca,

Co jeszcze jest w /var/spool/mailśrodku?
MadHatter

Plik o nazwie rpccałkowicie pusty.
Eduard Luca,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.