Fórum Root.cz
Hlavní témata => Server => Téma založeno: undefined 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.
-
Hack od hobby sysadmina (nie "fotka"):
cat email | $SENDMAIL "$@"
Na lepsie riesenie si asi budes musiet pockat.
-
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
-
Na tyhle věci se používá procmail...
-
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.
-
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
-
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
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ě.
-
Co treba pouzit sieve, jako napr. v: http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Pipe ?
-
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!
-
A nebo muzes zkusit pouzit always_bcc, ktere bude smerovane pres mailbox_command_maps do toho skriptu.
-
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
-
http://www.postfix.org/MAILDROP_README.html (http://www.postfix.org/MAILDROP_README.html)
http://gogs.info/books/debian-mail/chunked/utilities.html#utilities.maildrop (http://gogs.info/books/debian-mail/chunked/utilities.html#utilities.maildrop)