sendmail (ein Mail-Transport-Agent - MTA) speichert E-Mails an dem Ort, an dem sie zum Speichern von E-Mails konfiguriert sind. Ein MTA speichert jedoch nur E-Mails, die sich derzeit in der Warteschlange befinden. Die Zustellung von E-Mails an den Ort, auf den ein Benutzer zugreifen kann, wird vom Mail Delivery Agent (MDA) abgewickelt. Während sendmail (und andere MTAs) als MDA fungieren können, ist dies sehr ungewöhnlich.
Unabhängig davon ist der Versuch, auf die Mail-Dateien zuzugreifen, nicht der richtige Weg, um einen Autoresponder zu implementieren.
Dies sollte als Filter im MTA (dh als Milter) oder im MDA erfolgen. Die milter-API wurde speziell dafür entwickelt - und möglicherweise sind bereits Tools verfügbar, die Ihre Anforderungen ohne Änderungen erfüllen.
Wenn Ihr aktueller MDA procmail ist, haben Sie Glück - dies bietet eine enorme Flexibilität (in der Tat eine eigenständige Programmiersprache) für die Verarbeitung von E-Mail-Nachrichten. Auch hier gibt es im Internet viel Code, der Ihren Anforderungen entspricht (AFAIK, es gibt kein zentrales Repository für Procmail-Rezepte - aber versuchen Sie es mit Google).
Sogar der grundlegende .forward-Mechanismus kann verwendet werden, um dies zu implementieren - aber ich würde davon abraten -, wenn Sie die Procmail-Route entlang gehen, können Sie die Nachricht teilen, damit die Zustellung nicht von Ihrem Skript abhängt / von diesem implementiert wird.
sendmail.cf
Datei in der Startzeile veröffentlichenMlocal
, in der angegeben wird, welcher MDA verwendet wird?P=/usr/bin/procmail
ist der Code. Vielen Dank :)procmailrc
Datei. Ich frage mich, ob meine sendmail + procmail wirklich verwendet werden.Wenn Sie andere als die Standardverzeichnisse konfiguriert haben, sollten Sie in Ihrer Datei /etc/mail/sendmail.cf nachsehen, auf welche Pfade festgelegt ist.
Dies variiert nicht nur zwischen der Betriebssystemverteilung, sondern auch die Standardverzeichnisse zwischen verschiedenen Versionen von sendmail haben sich geändert. Kurz gesagt, damit wir Ihnen die Standardeinstellungen mitteilen können, müssen wir die Betriebssystemversion UND die sendmail-Version kennen. Die Standardeinstellungen sind / var / spool / mail / $ USERNAME für das Ablegen von E-Mails. Wenn ein Benutzer die E-Mails mit einer anderen Anwendung liest, wird sie normalerweise nach $ HOME / mbox verschoben.
Hier ist eine Liste gängiger Mail-Verzeichnisse:
quelle
$MAIL =
aber nicht in der Konfigurationsdatei finden. Ich habe / var / spool / mail / root überprüft, es sind einige Mails darin, aber nicht die richtigen (und ich bin sicher, dass sie nicht gelesen wurden, da ich eine E-Mail gesendet und die Datei schnell überprüft habe - war nicht da).Es hängt davon ab, wie es konfiguriert ist, aber der übliche Ort ist
/var/spool/mail
oder einige Distributionen/var/mail
. Wenn es an keinem dieser Orte ist, lassen Sie es uns wissen und wir werden anfangen zu graben !quelle
/var/spool/mail/root
aber nur die lokalen Mails (von Root zu Root gesendet)./var/spool/mail
?rpc
die völlig leer ist.