postfix: Liste der versendeten Mails per Kommando abrufen
Kann postfix dazu bewegt werden, ein Journal der
versendeten Mails zu erstellen kann dieses Journal
auf Kommandozeilenabruf zur Verfügung gestellt werden?
Die Liste der NOCH NICHT versendeten Mails hingegen ist abrufbar:
root@rex2:~>mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
E0EF8C8198 483 Sun Sep 26 00:06:07 ekkardgerlach@aiaii.de
egerlach@aiaii.de
Ist diese Mail aber einmal versand, dann ist die Ausgabe von
mailq natürlich leer.
Es geht um einen ganz primitiven Mailversand. Empfangen werden die
zurückgehenden/eingehenden Mails auf einem ganz anderen System.
Ich weiß wie ich es mir selber basteln könnte:
In /var/log/mail steht:
Sep 26 00:26:42 rex2 postfix/pickup[6428]: DFD46C8199: uid=500
from=
Am Sonntag, 26. September 2004 00:36 schrieb Ekkard Gerlach:
Kann postfix dazu bewegt werden, ein Journal der versendeten Mails zu erstellen kann dieses Journal auf Kommandozeilenabruf zur Verfügung gestellt werden?
Die Liste der NOCH NICHT versendeten Mails hingegen ist abrufbar:
root@rex2:~>mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- E0EF8C8198 483 Sun Sep 26 00:06:07 ekkardgerlach@aiaii.de egerlach@aiaii.de
Ist diese Mail aber einmal versand, dann ist die Ausgabe von mailq natürlich leer.
Es geht um einen ganz primitiven Mailversand. Empfangen werden die zurückgehenden/eingehenden Mails auf einem ganz anderen System.
Ich weiß wie ich es mir selber basteln könnte: In /var/log/mail steht:
Sep 26 00:26:42 rex2 postfix/pickup[6428]: DFD46C8199: uid=500 from=
Sep 26 00:26:42 rex2 postfix/cleanup[7268]: DFD46C8199: message-id=<20040925222642.GA7271@rex2.local> Sep 26 00:26:42 rex2 postfix/qmgr[1772]: DFD46C8199: from= , size=478, nrcpt=1 (queue active) Sep 26 00:26:52 rex2 postfix/smtp[7281]: DFD46C8199: to= , relay=mail.aiaii.de[81.209.148.118], delay=10, status=sent (250 Ok: queued as 125B7F3805) Da könnte ich mir die Zeilen mit "status=sent" herausholen und ein bißchen lesbarer aufarbeiten: mit Datum und Empfängeradresse. Es müßte doch auch einfacher gehen, oder? Irgendein zu postfix gehörender Befehl vielleicht?
Ich habe bisher nix gefunden! Am Ende von "man postfix" stehen allerlei Befehle, bin aber nicht vorangekommen.
Wenn Postfix die Mail versendet hat, löscht er sie selbstverständlich auch aus den Queues. Dann ist Deine einzige Chance das Log. Ist das für statistische Zwecke gedacht? Da gibt es ein Tool um das Log auszuwerten. pflogsum -- Andreas
* Andreas Winkelmann schrieb:
Wenn Postfix die Mail versendet hat, löscht er sie selbstverständlich auch aus den Queues. Dann ist Deine einzige Chance das Log.
Ist das für statistische Zwecke gedacht? Da gibt es ein Tool um das Log auszuwerten. pflogsum
Nein. keine Statistik, der User, der die Mails direkt aus einem Uralt-Textsystem heraus sendet, will eben irgendwo nachsehen können, welche Faxe der letzten Tage schon versendet sind. Internetzugang ist nämlich weder dauerhaft (DSL) noch "on demand" sondern "manuell". Dann ist es immer interessant, was nu' wirklich der IST-Stand ist: was ist noch in der queue und was ist schon versand worden. pflogsum ist da wohl oversized, oder? Ekkard
Am Sonntag, 26. September 2004 01:52 schrieb Ekkard Gerlach:
Wenn Postfix die Mail versendet hat, löscht er sie selbstverständlich auch aus den Queues. Dann ist Deine einzige Chance das Log.
Ist das für statistische Zwecke gedacht? Da gibt es ein Tool um das Log auszuwerten. pflogsum
Nein. keine Statistik, der User, der die Mails direkt aus einem Uralt-Textsystem heraus sendet, will eben irgendwo nachsehen können, welche Faxe der letzten Tage schon versendet sind. Internetzugang ist nämlich weder dauerhaft (DSL) noch "on demand" sondern "manuell". Dann ist es immer interessant, was nu' wirklich der IST-Stand ist: was ist noch in der queue und was ist schon versand worden. pflogsum ist da wohl oversized, oder?
Hmm, es ist oversized. Dann wohl eher die "grep status=sent"-methode. -- Andreas
Am Sonntag 26 September 2004 09:04 schrieb Andreas Winkelmann:
Am Sonntag, 26. September 2004 01:52 schrieb Ekkard Gerlach:
Wenn Postfix die Mail versendet hat, löscht er sie selbstverständlich auch aus den Queues. Dann ist Deine einzige Chance das Log.
Ist das für statistische Zwecke gedacht? Da gibt es ein Tool um das Log auszuwerten. pflogsum
Nein. keine Statistik, der User, der die Mails direkt aus einem Uralt-Textsystem heraus sendet, will eben irgendwo nachsehen können, welche Faxe der letzten Tage schon versendet sind. Internetzugang ist nämlich weder dauerhaft (DSL) noch "on demand" sondern "manuell". Dann ist es immer interessant, was nu' wirklich der IST-Stand ist: was ist noch in der queue und was ist schon versand worden. pflogsum ist da wohl oversized, oder?
Hmm, es ist oversized. Dann wohl eher die "grep status=sent"-methode.
Wie wäre es damit (ums Eck gedacht): Postversand via Script, das folgendes macht: mailq > gesendet.$(date +%Y%m%d-%T) sendmail && if [ "$(/usr/bin/mailq)" != "Mail queue is empty" ] ; then mailq > vergessen.$(date +%Y%m%d-%T) fi (nicht getestet - evtl. Syntax-Probleme mgl ;-) Somit hast du die Ausgabe der Mailqueue unmittelbar vor dem Versand und eine evtl. Kontrolldatei, wenn etwas schief gelaufen sein sollte. Einziges Manko: Wenn während des Sendevorgangs noch Mails in die Queue gestellt werden, fallen die durchs Raster. Dagegen könnte man ggf. vor das Sqript noch einen Befehl stellen, der die Annahme der Mails blockt (z.B. Firewall-Regel, vielleicht hat auch Postfix da eine Möglichkeit [1]). Am Ende des Scriptes natürlich wieder freischalten. --- [1] Spontan fällt mir eine master.cf.stop ein, die die Zeile "smtp inet ... smtpd" auskommentiert hat und die dann für die Zeit des Versendens die originale master.cf.stop ersetzt (könnte man auch mit sed in der master.cf direkt machen). Danach ein postfix reload nicht vergessen. Am Ende des Scriptes alles zurück. -- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
participants (3)
-
Andreas Winkelmann
-
Ekkard Gerlach
-
Matthias Houdek