Mailserver a uložení mailu do databáze

Mailserver a uložení mailu do databáze
« kdy: 02. 03. 2011, 09:44:45 »
Zdravim,
  shanim se po jednoduchem reseni postovniho serveru (zatim nic konkretniho, mozna Postfix?), ktery bude mit moznost nastavit pri prijeti mejlu nejaky trigger, ktery provede skript - jde mi o vytazeni tela mejlu a jeho ulozeni do relacni databaze. Pouziva nekdo neco takoveho?

Diky!
« Poslední změna: 02. 03. 2011, 11:35:42 od Petr Krčmář »


Ivo

Re: Postovni server a skript ukladajici mejl do databaze
« Odpověď #1 kdy: 02. 03. 2011, 10:13:11 »
Majlovy server Zimbra ma myslim nieco ako to ze indexuje mejly v databaze. Mozno tam bude nieco co hladas.
Skus sa pozriet na http://www.zimbra.com/.

Re: Postovni server a skript ukladajici mejl do databaze
« Odpověď #2 kdy: 02. 03. 2011, 10:23:24 »
Zdravim,
  shanim se po jednoduchem reseni postovniho serveru (zatim nic konkretniho, mozna Postfix?), ktery bude mit moznost nastavit pri prijeti mejlu nejaky trigger, ktery provede skript - jde mi o vytazeni tela mejlu a jeho ulozeni do relacni databaze. Pouziva nekdo neco takoveho?

Diky!

Trigger nepoužívám, ale nad maildirem se dá napsat jednoduchý skript, který projde emaily (co email to jeden soubor) a pak s ním udělá co potřebuješ, třeba i vloží do DB.

Pokud bys chtěl mít kompletně všechno v DB, mrkni se na projekt DBMail http://www.dbmail.org/

Re: Postovni server a skript ukladajici mejl do databaze
« Odpověď #3 kdy: 02. 03. 2011, 10:32:24 »
Dik, na dbmail jsem koukal hned, jak jsem poprve zagooglil. Zimbra mi pripada moc jako kanon na vrabce, tohle by melo bejt fakt neco jednoducheho (a neuchylneho - pouzit mysql u postfixu a dat tam trigger je docela uchylne :-))

VS

Re: Postovni server a skript ukladajici mejl do databaze
« Odpověď #4 kdy: 02. 03. 2011, 10:54:46 »
Nejjednodušší podle mě bude použít ma mailserveru filtr, který celý e-mail předá na stdin externího programu. To může být skritp v php/perlu/... který vyřeší zápis do db.

Minimálně pro Exim v konfiguraci se systémovými uživateli lze použít klasický ".forward" soubor v domovském adresáři, a v něm něco jako:

Kód: [Vybrat]
# Exim filter
pipe "/nekde/skript.php"

Nebo lze v konfiguraci Eximu přidat vlastní router pro konkrétní cílovou adresu, a tento zpracovávat externím programem:

Kód: [Vybrat]
nejaky_router:
  debug_print = "R: my external cmd route"
  driver = redirect
  domains = nejakadomena.cz
  local_parts = mejakymailpredzavinacem
  pipe_transport = address_pipe
  data = "|/nekde/skript.php"
  allow_fail

Ten Exim lze použít ve výchozí Debian konfiguraci. Podobně to jistě půjde i pro ten Postfix, ale nemám to vyzkoušené.