Postfix: skript při přijetí pošty

undefined

Postfix: skript při přijetí pošty
« kdy: 09. 09. 2014, 13:40:42 »
Dobrý den,
potřeboval bych radu zkušeného sysadmina :)

Mám nakonfigurovaný postfix s virtuálními uživateli (v mysql).
Potřeboval bych detekovat okamžik, kdy uživateli přijde nový e-mail a na základě toho provést nějakou reakci. Script, který by se měl spouštět při nově příchozím e-mailu by měl dostat minimálně hlavičky (od koho mail je a pro koho je).

Zkoušel jsem řešení co je zde http://blog.thecodingmachine.com/content/triggering-php-script-when-your-postfix-server-receives-mail
které by bylo OK až na malou drobnost - e-mail "skončí" v tom scriptu a už nespadne samozřejmě do mailboxu, což je nežádoucí.

Hodilo by se mi podobné řešení, s tím, že e-mail do mailboxu dorazí.

Za Vaše rady/tipy předem děkuji.
« Poslední změna: 09. 09. 2014, 14:13:30 od Petr Krčmář »


aaa

Re:Postfix: skript při přijetí pošty
« Odpověď #1 kdy: 09. 09. 2014, 14:31:25 »
Hack od hobby sysadmina (nie "fotka"):
Kód: [Vybrat]
cat email | $SENDMAIL "$@"
Na lepsie riesenie si asi budes musiet pockat.

anonym

Re:Postfix: skript při přijetí pošty
« Odpověď #2 kdy: 09. 09. 2014, 14:34:09 »
co presne si zkousel v tom postfixu?

podle me by melo jit si ten svuj skript zahookovat jako filter, kterej na kazdou zpravu odpovi kladne. postfix se potom postara o to ze to preda dal

nikdy sem to ale prakticky nezkousel, takze to neni jisty

David1234

Re:Postfix: skript při přijetí pošty
« Odpověď #3 kdy: 09. 09. 2014, 14:40:57 »
Na tyhle věci se používá procmail...

undefined

Re:Postfix: skript při přijetí pošty
« Odpověď #4 kdy: 09. 09. 2014, 15:02:52 »
Ok, řešení od aaa by asi s některými úpravami použít šlo, ale zajímá mě, davide tvoje řešení.
Mohl bys až budeš mít chvilku zastavit se na IRC? Na autistech jsem tě nenašel :)) Jsem na starém.

Díky, b.


anonym

Re:Postfix: skript při přijetí pošty
« Odpověď #5 kdy: 09. 09. 2014, 15:40:31 »
Procmail bych uplne nevidel, teda zalezi na tom co chces

pokud to chces globalne tak spis filterem v postfixu, pokud to chces per-user tak procmail/sieve

undefined

Re:Postfix: skript při přijetí pošty
« Odpověď #6 kdy: 09. 09. 2014, 16:17:19 »
Nezlobte se na mě, ale proč si nepřečtete ten původní dotaz víckrát, ... než mu porozumíte? S prominutím, platí to trochu i pro pana Krčmáře - nepoptávám odpověď na script pro příjem pošty (jak bylo toto vlákno upraveno).

Zkusím to ještě jednou -

1) poštu příjmám. Potřebuji řešení, které mi dá vědět, že uživatel xyz@domain má v INBOXU nový e-mail od abc@anotherdomain.
2) filtry postfixu jsem použil, viz "Zkoušel jsem řešení co je zde http://blog.thecodingmachine.com/content/triggering-php-script-when-your-postfix-server-receives-mail, které by bylo OK ..."

v master.cf jsem testoval něco podobného

Kód: [Vybrat]
tester unix - n n - - pipe
  flags=F user=www-data argv=/tmp/postfix/test.php ${sender} ${recipient}

smtp      inet  n       -       -       -       -       smtpd
  -o content_filter=tester:dummy


3) problém je v tom, že pokud si nastavím jako content_filter svůj script, tak ten přijme na stdin e-mail, který už se už neuloží do mailboxu. Jak jsem po konsultaci s 'aaa' zjistil, je možné si v mém scriptu zavolat sendmail, kterému e-mail předám a znovu ho pošlu. V tutu chvíli by podle dokumentace neměl znova procházet chainem a neměl by na něj být aplikovaný znova content_filter.

Řešení (viz bod 3) by mohlo být považováno za funkční, avšak nepřijde mi to jako úplně čisté řešení. Jelikož používám PHP, mohl bych ten e-mail přes imap funkce i do toho mailboxu appendovat. Ale to je snad ještě horší řešení. Hledám nějaký čistší způsob.

Děkuji a omlouvám se pokud jsem původní dotaz napsal nesrozumitelně.

MP

Re:Postfix: skript při přijetí pošty
« Odpověď #7 kdy: 09. 09. 2014, 16:20:11 »
Co treba pouzit sieve, jako napr. v: http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Pipe ?

undefined

Re:Postfix: skript při přijetí pošty
« Odpověď #8 kdy: 09. 09. 2014, 16:26:57 »
Co treba pouzit sieve, jako napr. v: http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Pipe ?

To vypadá že by mohlo být řešením. Díky!

Dzavy

Re:Postfix: skript při přijetí pošty
« Odpověď #9 kdy: 09. 09. 2014, 16:36:04 »
A nebo muzes zkusit pouzit always_bcc, ktere bude smerovane pres mailbox_command_maps do toho skriptu.

j

Re:Postfix: skript při přijetí pošty
« Odpověď #10 kdy: 09. 09. 2014, 19:44:46 »
Jen takovej nastrel z voleje, ale pouzivas amavis? Byva pouzivanej dost casto. Je to takovej "superscript", kterej ma obsahlou konfiguraci, umi pomalu zavazovat i tkanicky ... takze predpokladam, ze nebude mit zadnej problem poslat ti v ramci pruchodu mail.

Pokud dobre vidim, v konfiguraku sekce IV - Notifications.

Jinak konfigurace vypada asi takhle:
content_filter = smtp-amavis:[127.0.0.1]:10024

:D