Hallo Liste, ich komme mal wieder mit einer Amavis-Frage. Diesmal geht es mir um die Auswertung von geblockten Mails. In meiner Umgebung blocke ich neben Viren, Anhaengen auch Spam (also nicht nur getagged weiterleiten). Was ich jetzt noch gerne haette, waere eine Art Tageszusammenfassung ueber abgelehnte Mails. Ich bin schon soweit, mir eine entsprechende Mail zusammenzubauen - aufgeteilt nach kaputten Headern, Spam und Viren inkl einiger Informationen wie Subject, bei Spam Punkte, bei Viren Virustyp etc pp. Die Kuer waere jetzt folgende: Ich schicke diese Mail momentan an eine definierbare eMail-Adresse. Heisst also, zb ein Admin bekommt die Zusammenfassung fuer alle User. Was ich gerne haette waere, dass jeder User eine eigene eMail bekommt - also nur mit an ihn geblockten eMails. Ich scheitere jedoch an der Generierung und beim Versenden dieser Mail. Am Beispiel Spam erklaert: Ich greppe z.B. nach dem "To:" im Amavis-Verzeichnis. Das funktioniert fuer o.g. Beispiel problemlos. Nur wie baut man sich sowas fuer das was ich als "Kuer" bezeichnet habe? Oder hat sowas jmd schon gebaut? Ich hatte schon was mit X-Envelope tu gemacht, aber naja.. Irgendwie isses dann am Versand gescheitert. Momentan werden da diverse greps, cats etc gemacht und dann in mutt -s "Subject" gepiped (mutt weil ich die Auswertung als HTML verschicken will und da mit -e den content-type setzen kann) Hat jmd sowas schon mal gemacht und/oder eine Idee einen Tipp? P.S.: Amavis speichert nicht in MySQL, ist nicht gewuenscht (kann ich nix dran machen). LG, Benni -- Benjamin E. Zeller Ing.-Büro Hohmann Bahnhofstr. 34 D-82515 Wolfratshausen Tel.: +49 (0)8171 347 88 12 Mobil: +49 (0)160 99 11 55 23 Fax: +49 (0)8171 910 778 mailto: zeller@ibh-wor.de www.ibh-wor.de
Benjamin E. Zeller wrote:
Hallo Liste,
ich komme mal wieder mit einer Amavis-Frage. Diesmal geht es mir um die Auswertung von geblockten Mails. In meiner Umgebung blocke ich neben Viren, Anhaengen auch Spam (also nicht nur getagged weiterleiten). Was ich jetzt noch gerne haette, waere eine Art Tageszusammenfassung ueber abgelehnte Mails.
Ich bin schon soweit, mir eine entsprechende Mail zusammenzubauen - aufgeteilt nach kaputten Headern, Spam und Viren inkl einiger Informationen wie Subject, bei Spam Punkte, bei Viren Virustyp etc pp.
Die Kuer waere jetzt folgende:
Ich schicke diese Mail momentan an eine definierbare eMail-Adresse. Heisst also, zb ein Admin bekommt die Zusammenfassung fuer alle User. Was ich gerne haette waere, dass jeder User eine eigene eMail bekommt - also nur mit an ihn geblockten eMails.
Ich scheitere jedoch an der Generierung und beim Versenden dieser Mail. Am Beispiel Spam erklaert: Ich greppe z.B. nach dem "To:" im Amavis-Verzeichnis. Das funktioniert fuer o.g. Beispiel problemlos.
Nur wie baut man sich sowas fuer das was ich als "Kuer" bezeichnet habe? Oder hat sowas jmd schon gebaut?
Sorry, Ich kapiere dein Problem nicht. Bitte mal ein Beispiel und die dabei entstehenden Logzeilen aus /var/log/mail posten. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Monday 16 April 2007 20:14, Sandy Drobic wrote:
Benjamin E. Zeller wrote:
Hallo Liste,
ich komme mal wieder mit einer Amavis-Frage. Diesmal geht es mir um die Auswertung von geblockten Mails. In meiner Umgebung blocke ich neben Viren, Anhaengen auch Spam (also nicht nur getagged weiterleiten). Was ich jetzt noch gerne haette, waere eine Art Tageszusammenfassung ueber abgelehnte Mails.
Ich bin schon soweit, mir eine entsprechende Mail zusammenzubauen - aufgeteilt nach kaputten Headern, Spam und Viren inkl einiger Informationen wie Subject, bei Spam Punkte, bei Viren Virustyp etc pp.
Die Kuer waere jetzt folgende:
Ich schicke diese Mail momentan an eine definierbare eMail-Adresse. Heisst also, zb ein Admin bekommt die Zusammenfassung fuer alle User. Was ich gerne haette waere, dass jeder User eine eigene eMail bekommt - also nur mit an ihn geblockten eMails.
Ich scheitere jedoch an der Generierung und beim Versenden dieser Mail. Am Beispiel Spam erklaert: Ich greppe z.B. nach dem "To:" im Amavis-Verzeichnis. Das funktioniert fuer o.g. Beispiel problemlos.
Nur wie baut man sich sowas fuer das was ich als "Kuer" bezeichnet habe? Oder hat sowas jmd schon gebaut?
Sorry, Ich kapiere dein Problem nicht. Bitte mal ein Beispiel und die dabei entstehenden Logzeilen aus /var/log/mail posten.
Hi Sandy, danke fuer die Nachfrage, war wohl bissl doof bzw unverstaendlich ausgedrueckt. Keine Logzeile in /var/log/mail (gibts natuerlich, aber das verwende ich nicht). Momentan ist es folgendermassen: Per Cron wird mein Script gestartet. Das Script tut momentan folgendes: Es ermittelt via find mit -name mtime die gesamt gefilterten Mails. Dann gehts in die Details, in denen Empfaenger der blockierten Mail, Betreff, (bei Spam) Spam-Score und Mail-ID ausgegeben werden. Das ermittle ich bspw mit egrep '^X-Spam-Status:' $spamfile | sed -e 's/.*score=//' -e 's/ .*//' So baue ich mir fuer Spam, Viren, defekte Header eine Tabelle zusammen, die die o.g. Informationen enthaelt. Das Ergebnis ist eine HTML-Datei (Kundenwunsch und auch wg den Tabellen) die dann folgendermassen verarbeitet wird: script-aufruf | mutt -s "[ibh-mail] Tageszusammenfassung vom `/bin/date -d yesterday '+%d.%m.%Y'`" -e 'set content_type=text/html' $recipient Das funktioniert auch wunderbar, jedoch wie schon erwaehnt, nur mit EINEM Empfaenger, der Infos ueber ALLE geblockten Mails erhaelt. Jetzt haette ich das Ganze (die oben beschriebene "Kuer") gerne "aufgeteilt", also dass jede Mail-Adresse Infos darueber enthaelt, welche eMails abgefangen wurden. Ich weiss jedoch nicht, wie ich das bewerkstelligen soll, nach was ich greppen soll, wie ich die einzelnen Mails abschicke etc pp (was ist mit aliasen, die auf mehrere Mail-Adressen zeigen usw). Ich hoffe, ich konnte das ganze jetzt ein bisschen besser erklaeren. LG, Benni -- Benjamin E. Zeller Ing.-Büro Hohmann Bahnhofstr. 34 D-82515 Wolfratshausen Tel.: +49 (0)8171 347 88 12 Mobil: +49 (0)160 99 11 55 23 Fax: +49 (0)8171 910 778 mailto: zeller@ibh-wor.de www.ibh-wor.de
Benjamin E. Zeller wrote:
Die Kuer waere jetzt folgende:
Hi Sandy, danke fuer die Nachfrage, war wohl bissl doof bzw unverstaendlich ausgedrueckt. Keine Logzeile in /var/log/mail (gibts natuerlich, aber das verwende ich nicht). Momentan ist es folgendermassen:
Per Cron wird mein Script gestartet. Das Script tut momentan folgendes: Es ermittelt via find mit -name mtime die gesamt gefilterten Mails. Dann gehts in die Details, in denen Empfaenger der blockierten Mail, Betreff, (bei Spam) Spam-Score und Mail-ID ausgegeben werden. Das ermittle ich bspw mit
egrep '^X-Spam-Status:' $spamfile | sed -e 's/.*score=//' -e 's/ .*//'
Ich sehe leider nicht den Aufbau von $spamfile, deshalb kann ich hier keinen Rat geben.
So baue ich mir fuer Spam, Viren, defekte Header eine Tabelle zusammen, die die o.g. Informationen enthaelt. Das Ergebnis ist eine HTML-Datei (Kundenwunsch und auch wg den Tabellen) die dann folgendermassen verarbeitet wird:
script-aufruf | mutt -s "[ibh-mail] Tageszusammenfassung vom `/bin/date -d yesterday '+%d.%m.%Y'`" -e 'set content_type=text/html' $recipient
Vermutlich hast du also in $spamfile die gesammelte aufstellung, welche jetzt noch zerlegt und diese Teile dann jeweils an die Empfänger geschickt werden muss?
Das funktioniert auch wunderbar, jedoch wie schon erwaehnt, nur mit EINEM Empfaenger, der Infos ueber ALLE geblockten Mails erhaelt. Jetzt haette ich das Ganze (die oben beschriebene "Kuer") gerne "aufgeteilt", also dass jede Mail-Adresse Infos darueber enthaelt, welche eMails abgefangen wurden. Ich weiss jedoch nicht, wie ich das bewerkstelligen soll, nach was ich greppen soll, wie ich die einzelnen Mails abschicke etc pp (was ist mit aliasen, die auf mehrere Mail-Adressen zeigen usw).
Ich hoffe, ich konnte das ganze jetzt ein bisschen besser erklaeren.
Es wird langsam etwas klarer, aber ich sehe leider nicht die Ausgangsstruktur, deshalb kann ich nicht helfen. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Tuesday 17 April 2007 11:10, Sandy Drobic wrote:
Benjamin E. Zeller wrote:
Die Kuer waere jetzt folgende:
Hi Sandy,
danke fuer die Nachfrage, war wohl bissl doof bzw unverstaendlich ausgedrueckt. Keine Logzeile in /var/log/mail (gibts natuerlich, aber das verwende ich nicht). Momentan ist es folgendermassen:
Per Cron wird mein Script gestartet. Das Script tut momentan folgendes: Es ermittelt via find mit -name mtime die gesamt gefilterten Mails. Dann gehts in die Details, in denen Empfaenger der blockierten Mail, Betreff, (bei Spam) Spam-Score und Mail-ID ausgegeben werden. Das ermittle ich bspw mit
egrep '^X-Spam-Status:' $spamfile | sed -e 's/.*score=//' -e 's/ .*//'
Ich sehe leider nicht den Aufbau von $spamfile, deshalb kann ich hier keinen Rat geben.
OK, ich wollte vermeiden, meinen "Holper-Code" zu pastne, aber ist wohl besser ;) Hier die entsprechende Passage fuer Spam: ($dir ist in dem Fall "/var/spol/amavis/virusmails/") for spamfile in $(find $dir -name 'spam*' -mtime -2) do echo "<tr><td>" egrep '^To:' $spamfile | grep -v Binary echo "</td>" echo "<td>" egrep '^Subject:' $spamfile | grep -v Binary echo "</td>" echo "<td align='right'>" egrep '^X-Spam-Status:' $spamfile | sed -e 's/.*score=//' -e 's/ .*//' echo "</td>" echo "<td align='left'>" echo "<small>" echo $spamfile | sed -e s/\\/var\\/spool\\/amavis\\/virusmails\\/\/\/ echo "</td></tr>" done Die Sektionen fuer Header und Viren sehen aehnlich aus, nur andere Greps.
So baue ich mir fuer Spam, Viren, defekte Header eine Tabelle zusammen, die die o.g. Informationen enthaelt. Das Ergebnis ist eine HTML-Datei (Kundenwunsch und auch wg den Tabellen) die dann folgendermassen verarbeitet wird:
script-aufruf | mutt -s "[ibh-mail] Tageszusammenfassung vom `/bin/date -d yesterday '+%d.%m.%Y'`" -e 'set content_type=text/html' $recipient
Vermutlich hast du also in $spamfile die gesammelte aufstellung, welche jetzt noch zerlegt und diese Teile dann jeweils an die Empfänger geschickt werden muss?
Das oben generiert unabhaengig vom Empfaenger, sondern spuckt nur ALLES in HTML aus und wird dann in mutt gepiped.
Das funktioniert auch wunderbar, jedoch wie schon erwaehnt, nur mit EINEM Empfaenger, der Infos ueber ALLE geblockten Mails erhaelt. Jetzt haette ich das Ganze (die oben beschriebene "Kuer") gerne "aufgeteilt", also dass jede Mail-Adresse Infos darueber enthaelt, welche eMails abgefangen wurden. Ich weiss jedoch nicht, wie ich das bewerkstelligen soll, nach was ich greppen soll, wie ich die einzelnen Mails abschicke etc pp (was ist mit aliasen, die auf mehrere Mail-Adressen zeigen usw).
Ich hoffe, ich konnte das ganze jetzt ein bisschen besser erklaeren.
Es wird langsam etwas klarer, aber ich sehe leider nicht die Ausgangsstruktur, deshalb kann ich nicht helfen.
Jetzt? ;-) -- Benjamin E. Zeller Ing.-Büro Hohmann Bahnhofstr. 34 D-82515 Wolfratshausen Tel.: +49 (0)8171 347 88 12 Mobil: +49 (0)160 99 11 55 23 Fax: +49 (0)8171 910 778 mailto: zeller@ibh-wor.de www.ibh-wor.de
participants (2)
-
Benjamin E. Zeller
-
Sandy Drobic