Où sont stockés les e-mails sendmail?


10

J'essaie de créer un script de répondeur automatique pour sendmail (non, je ne veux pas encore en utiliser un pré-construit), mais je n'arrive pas à trouver l'emplacement des e-mails reçus sur mon serveur. Je dois spécifier que ma configuration n'est pas celle par défaut.

J'ai regardé /rootdedans, il n'y a pas de dossier mail. (Je n'ai pas d'autre utilisateur que root). J'ai regardé /var/mail/rootdedans, il y a juste quelques logs qui me sont envoyés par mail, mais pas le mail externe que je reçois des utilisateurs.

J'ai vérifié /var/log/maillog, mais il n'y a aucune erreur.

Je suis à court d'idées où chercher. Quelqu'un pourrait-il m'aider?

Réponses:


6

sendmail (un agent de transport de courrier - MTA) stocke le courrier à l'endroit où il est configuré pour stocker le courrier. Mais un MTA stocke uniquement le courrier qu'il est actuellement en attente - la livraison du courrier à l'emplacement où il est accessible par un utilisateur est gérée par l'agent de distribution du courrier (MDA). Bien que sendmail (et d'autres MTA) puissent agir en tant que MDA, il est très inhabituel que ce soit le cas.

Quoi qu'il en soit, essayer d'accéder aux fichiers courrier n'est pas la bonne façon d'implémenter un répondeur automatique.

Cela devrait être fait comme un filtre dans le MTA (c'est-à-dire un milter) ou dans le MDA. L' API Milter est spécialement conçue pour cela - et il peut déjà y avoir des outils disponibles qui répondraient à vos besoins sans aucune modification.

Si votre MDA actuel est procmail, alors vous avez de la chance - cela offre une énorme flexibilité (en fait, c'est un langage de programmation à part entière) pour gérer les messages électroniques. Encore une fois, il y a beaucoup de code sur Internet qui peut répondre à vos besoins (AFAIK, il n'y a pas de dépôt central pour les recettes procmail - mais essayez google).

Même le mécanisme .forward de base peut être utilisé pour implémenter cela - mais je le déconseille - en descendant la route procmail, vous pouvez fourcher le message afin que la livraison ne soit pas dépendante / implémentée par votre script.


J'ai installé procmail (procmail-3.22-17.1.el5.centos.x86_64), mais je ne suis pas sûr qu'il soit utilisé. J'ai également lu un script de réponse automatique qui utilise procmail, qui pourrait être utile pour moi. Puis-je voir si procmail est en cours d'utilisation?
Eduard Luca

1
Pourriez-vous publier le contenu de votre sendmail.cffichier autour de la ligne qui commence Mlocal, qui nous dira quel MDA est utilisé.
MadHatter

Oui, c'est procmail. Yaay! P=/usr/bin/procmailest le code. Merci :)
Eduard Luca

Mais je n'ai pas de procmailrcdossier. Me fait me demander si mes sendmail + procmail sont vraiment utilisés.
Eduard Luca

Si elle est configurée dans sendmail et que votre courrier est livré, son utilisation de procmail (avec le compilé par défaut). Voir la page de manuel de procmail - généralement il s'agit de / etc / procmailrc et ~ / .procmailrc et si aucun n'est trouvé, il remet le courrier conformément à la configuration au moment de la compilation.
symcbean

6

Si vous avez configuré des répertoires autres que ceux par défaut, vous devriez regarder votre /etc/mail/sendmail.cf pour voir quels sont les chemins d'accès.

Non seulement cela varie entre la distribution du système d'exploitation, mais même les répertoires par défaut entre les différentes versions de sendmail ont changé. En bref, juste pour que nous vous indiquions les valeurs par défaut, nous devons connaître la version du système d'exploitation ET la version de sendmail. Les valeurs par défaut sont / var / spool / mail / $ USERNAME pour le dépôt de courrier, puis si un utilisateur lit le courrier avec une autre application, il est généralement déplacé vers $ HOME / mbox.

Voici une liste des répertoires de messagerie courants:

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

Merci, mais sous quel nom de variable dois-je le rechercher dans le fichier de configuration? J'ai lu quelque chose $MAIL = mais je ne le trouve pas dans le fichier de configuration. J'ai vérifié / var / spool / mail / root, il y a des mails dedans, mais pas les bons (et je suis sûr qu'ils n'ont pas été lus, depuis que j'ai envoyé un email et rapidement vérifié le fichier - n'était pas là).
Eduard Luca

3

Cela dépend de la façon dont il est configuré, mais l'endroit habituel est /var/spool/mail, ou quelques distributions /var/mail. Si ce n'est dans aucun de ces endroits, faites-le nous savoir et nous commencerons à creuser !


Il y a des mails /var/spool/mail/rootmais seulement des mails locaux (envoyés de root à root).
Eduard Luca

Qu'y a-t-il d'autre /var/spool/mail?
MadHatter

Un fichier nommé rpcqui est totalement vide.
Eduard Luca
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.