postfix - kutakodás a levelek törzsében

Fórumok

Sziasztok!

Azt szeretném valahogy megoldani hogy minden levelet ami átmegy a postfix-en és tartalmaz bizonyos szavakat / kifejezéseket, azt a levelet kézbesítse az eredeti címzetteknek, plusz egy megadott email címre küldjön belőle egy másolatot is.

Nagyjából már utánna jártam a dolognak, és láttam hogy a levél törzs ellenőrzése viszonylag egyszerűen megoldható, csak azt nem tudom hogy hogy lehetne megcsinálni hogy az adott levelet kézbesítse is plusz egy másolat is landoljon egy megadott címen.

Ha van tapasztalatotok vagy ötletetek a témával kapcsolatban akkor várom a hozzászólásokat.

Köszi.

Hozzászólások

Szerintem ezeket transportal tudod csak megoldani.

Gondolom az ellenőrzést pipe-n keresztül tennéd. Ha csinálsz egy python/perl/bash scriptet akkor úgy is a végén az eredeti levelet vissza kell táplálnod a postfix queue-ba. Azt meg hogy milyen paraméterekkel teszed(ki a küldő, ki a címzett) már beállítás kérdése.

Nem emlekszem mar, hogy postfixnel hogyan mukodik a tartalomszures, de ha at tudod pipeolni egy kulso programon (stdinjere be a level, stdouton ki) akkor sima ugy: a kerdeses program megnezi hogy szerepel-e a szo, ha igen, akkor fogja a teljes stdinjet, es elkuldi egy levelben a megadott cimre. Kozben meg stdoutra nyomja ki a levelet, hogy az eredeti cimzettnek is megerkezzen.

Valoszinuleg van jobb megoldas is persze.

Egyszerűbb, ha úgy csinálod, hogy minden levélről készítesz másolatot, és utána a másolatokból letárolod ami kell, ami nem azt meg eldobod.

Pl.
always_bcc=megadottemail@cim minden átmenő levélről csinál másolatot.

A megadottemail@cim -hez tartozó postafiókra beeső leveleket pedig pl. procmail-al leválogatod.

Mondjuk ha van külső szűrő is beiktatva (pl. amavis) akkor kétszer fog minden levél bejönni a postfixba, ezért egy globális always_bcc kétszer fog minden levelet a megadottemail@cim-re elküldeni.
Erre is van megoldás, ha kell leírom...

Köszi a választ, ez a megoldás nagyon jól hangzik. Már van egy always_bcc-s email címem, de oda minden be kell hogy essen. Innen esetleg valami cron-ból futó szkript leszűrhetné a leveleket és ami fennakad a rostán azt bemásolhatná egy másik postafiókba is. Ha ebben tudnál nekem segíteni, annak nagyon örülnék.

Ha az always_bcc címed egy normál linux user, akkor procmail-el egyszerű.

csinálsz a home-jába egy .procmailrc-t és ebbe belerakod, hogy alapból minden levél menjen egy almappába, majd ami bizonyos feltételeknek megfelel az egy másikba is.

pl:

#ez a ket sor mindenrol csinal egy masolatot a normal maildirbe.
:0c:
./Maildir/

# ez pedig csak azt gyujti aminek a headerjeben szerepel az X-Spam-Flag
:0
* ^X-Spam-Flag: YES$
./Maildir/.Spam/

szerk: persze előtte be kell állítani a Postfixnek, hogy a procmail legyen a local delivery agent.

header_checks = regexp:/etc/postfix/header_checks

mime_header_checks = regexp:/etc/postfix/mime_header_checks

body_checks = regexp:/etc/postfix/body_checks

gugli ad csomo peldat, ezek szuresre jok levelezo szerver oldalon

---

procmail scripttel megoldhato a tovabbkuldes is

Ezt már néztem: body_checks = regexp:/etc/postfix/body_checks csak nem tudom hogy hogy lehet megoldani hogy ezeket a leveleket mondjuk ne csak simán eldobja, hanem kézbesítse rendesen, plussz a másolatot küldje tovább...

A másik amivel problémába ütköztem, hogy elkezdtem egy kis bash scriptet írni ami kiszűri a levelek közül azt ami nekem kell. A probléma viszont az hogy az ékezetes karakterek össze vissza jelennek meg a teszt fájljaimban amiket a Maildir-emből vettem...