Dove sono archiviate le email di sendmail?


10

Sto cercando di creare uno script di risposta automatica per sendmail (no, non voglio ancora usarne uno pre-costruito), ma non riesco a trovare la posizione delle e-mail ricevute sul mio server. Devo specificare che la mia configurazione non è di default.

Ho cercato /root, non c'è nessuna cartella di posta lì. (Non ho altri utenti oltre a root). Ho guardato dentro /var/mail/root, ci sono solo alcuni registri che mi vengono inviati per posta, ma non per posta esterna che ricevo dagli utenti.

Ho controllato /var/log/maillog, ma non ci sono errori.

Sono fuori di idee dove cercare. Qualcuno può aiutarmi?

Risposte:


6

sendmail (un agente di trasporto di posta - MTA) archivia la posta nel luogo in cui è configurata per memorizzare la posta. Ma un MTA memorizza solo la posta che sta attualmente accodando: la consegna della posta nella posizione in cui è accessibile da un utente viene gestita dall'agente di consegna della posta (MDA). Mentre sendmail (e altri MTA) possono fungere da MDA, è molto insolito che ciò avvenga.

Indipendentemente da ciò, provare ad accedere ai file di posta non è il modo giusto per implementare un autorisponditore.

Questo dovrebbe essere fatto come un filtro nell'MTA (cioè un mungitore) o nell'MDA. L' API di Milter è progettata appositamente per questo - e potrebbero già essere disponibili strumenti che soddisferebbero le tue esigenze senza alcuna modifica.

Se il tuo attuale MDA è procmail, allora sei fortunato: questo fornisce un'enorme flessibilità (in effetti è un linguaggio di programmazione a sé stante) per la gestione dei messaggi di posta. Ancora una volta c'è un sacco di codice su Internet che può soddisfare le tue esigenze (AFAIK non esiste un repository centrale per le ricette di procmail, ma prova con google).

Perfino il meccanismo .forward di base può essere usato per implementare questo - ma sconsiglio questo - scendendo dalla rotta procmail puoi biforcare il messaggio in modo che la consegna non dipenda / sia implementata dal tuo script.


Ho installato procmail (procmail-3.22-17.1.el5.centos.x86_64), ma non sono sicuro che sia usato. Ho anche letto uno script di risposta automatica che utilizza procmail, che potrebbe essere utile per me. Posso vedere se procmail è in uso?
Eduard Luca,

1
Potresti pubblicare il contenuto del tuo sendmail.cffile attorno alla riga che inizia Mlocal, il che ci dirà quale MDA è in uso.
MadHatter,

Sì, è procmail. Yaay! P=/usr/bin/procmailè il codice. Grazie :)
Eduard Luca,

Ma non ho procmailrcfile. Mi chiedo se il mio sendmail + procmail sia davvero utilizzato.
Eduard Luca,

Se è configurato in sendmail e la tua posta viene recapitata, utilizza procmail (con i valori predefiniti compilati). Vedi la pagina man per procmail - di solito cerca / etc / procmailrc e ~ / .procmailrc e se nessuno dei due viene trovato, consegna la posta in base alla configurazione al momento della compilazione.
symcbean,

6

Se hai configurato directory diverse da quelle predefinite, dovresti guardare il tuo /etc/mail/sendmail.cf per vedere a cosa sono impostati i percorsi.

Questo non varia solo tra la distribuzione del sistema operativo, ma anche le directory predefinite tra le diverse versioni di sendmail sono cambiate. In breve, solo per noi per dirti le impostazioni predefinite, dobbiamo conoscere la versione del sistema operativo e la versione di sendmail. I valori predefiniti sono / var / spool / mail / $ USERNAME per il rilascio della posta, quindi se un utente legge la posta con un'altra applicazione, di solito viene spostato in $ HOME / mbox.

Ecco un elenco di directory di posta comuni:

  • / Var / mail / $ USERNAME
  • / Var / spool / mail / $ USERNAME
  • $ HOME / mbox
  • $ HOME / mail
  • $ HOME / Maildir

Grazie, ma con quale nome di variabile dovrei cercarlo nel file di configurazione? Ho letto qualcosa $MAIL = ma non riesco a trovarlo nel file di configurazione. Ho controllato / var / spool / mail / root, ci sono alcune e-mail lì dentro, ma non quelle giuste (e sono sicuro che non sono state lette, dal momento che ho inviato una e-mail e controllato rapidamente il file - non c'era).
Eduard Luca,

3

Dipende da come è configurato, ma è il solito posto /var/spool/mailo alcune distro /var/mail. Se non si trova in nessuno di questi posti, faccelo sapere e inizieremo a scavare !


Ci sono alcune e-mail /var/spool/mail/rootma solo le e-mail locali (inviate da root a root).
Eduard Luca,

Cos'altro c'è dentro /var/spool/mail?
MadHatter,

Un file chiamato rpcche è totalmente vuoto.
Eduard Luca,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.