Mailserver, třídění a vylhedávání v poště

Odkazy na zajímavé články ze světa Linuxu.
Zamčeno
Uživatelský avatar
xsouku04
Administrátor
Příspěvky: 8146
Registrován: pát 15. říj 2010 11:11:44
Bydliště: Brno
Kontaktovat uživatele:

Mailserver, třídění a vylhedávání v poště

Příspěvek od xsouku04 »

Proč fultextové vyhledávání v mailech trvá věčnost, ale pokud hledám na celém internetu pomocí google mám výsledek okamžitě ?

V mém případě používám Thunderbird s obstarožním dovecot imap serverem verze 1.0.15, který je nastaven na používání Maildir++ formátu pro uchovávání emailu. Vypadá to, že Thunderbird maily indexuje (tedy alespoň jsem to v menu povolil), ale jen hlavičky. Hledání např. podle emailu odesilatele je okamžité, zato hledání pomocí slov obsažených v těle emailu je velmi zdlouhavé a to i když jsou kopie všech mailů uloženy i lokálně. Proč to ? Může za to Thunderbird (24), imap, dovecot nebo kombinace verzí?


Pokud je pošta uchována pomocí souborového systému, bývá to ve formátu Maildir nebo mbox. Nejspíše mírně pozměněný mbox, používá i Thunderbird.
V souboru Maildir má každý mail svůj vlastní soubor, složka je opravdová složka, kde je umístěn email tak jak byl přijat. U mbox má každá složka svůj soubor, tedy pokud obsahuje obrovské množství velkých mailů, není to ideální. Navíc je zde problém, pokud by do souboru chtělo zapisovat více aplikací zároveň. Obecně se říká, že rychlejší je mbox, ale jistější Maildir.
Thunderbird, zdá se, nedovede poštu slušně zaindexovat, je k tomu nějaký jiný nástroj ? Našel jsem mu - bohužel umí pracovat jen se soubory typu Maildir, ale podle manuálové stránky se zdá být jednoduchý a mocný. Nalezeným emailům může vytvořit symplinky a tak vytvořit další virtuální složku přístupnou jakémukoli mailovému klientovi.
Tedy hledací dotaz je nutné provést přímo na serveru, nebo si udělat offline kopii pomocí offlineimap. Bohužel se složkami Maildir zatím neumí stabilně fungovat Thunderbird, tedy by bylo nutné přejít na jinak zaostalejší Evolution nebo Kmail.
Nezbývá tedy, než pro případ nutnosti fulltextového vyhledávání, nezbývá než indexaci i vyhledávání provést přímo na serveru. Čtení výsledků hledání už je možné provádět kdekoli.

A nyní ještě další problém. Jak provádět třídění pošty tak, aby k zařazení emailů do příslušné služby došlo rovnou na serveru, bez ohledu na to, jakým mailovým klientem se připojujeme ? A to tak, aby třídící pravidla mohla po krátkém zaškolení přidávat každý uživatel mailu ?
K mému překvapení tento logický a základní požadavek řeší snad jen Sieve (síto). Které má doplněk do Dovecotu a pomocí pluginu a pomocí jiného pluginu lze používat i přímo z thunderburdu. Zůstávám udiven, že nic přímočařejšího zdá se neexistuje.

Obrázek
Obrázek

A co mne udivuje jako poslední. Mailový server je jako skládačka z více různých open source aplikací. Na přijímání mailu se používá např postfix, nebo mtu, na jako imap server dovecot atd.
Tedy konfigurovat lze mnoha způsoby a konfigurace není triviální. Jeden jednodušší návod je na naší 4smart wiki. Podrobných návodů na internetu moc není.
Hledal jsem nějaké snadno fungující řešení a našel jsem projekty http://www.Citadel.org a http://www.iredmail.org .
Bohužel u projektu Citadel jsem nenašel zda-li podporuje fulltext vyhledávání a jak vlastně emaily ukládá. Vypadá jinak slibně. U projektu iredmail byl postfixadmin nahrazen iredmail rozhraním aby mohli na uživatele tlačit k zakoupení plné verze rozhraní iredmail-pro.
Také my na stránkách chybí celkový popis jak to vlastně funguje. Instalátor instaluje balíčky z oficiálních repozitářů CentOS nebo debianu s tím, že pak dodá svoji konfiguraci podle zodpovězených dotazů při instalaci a svoji náhradu za postfixadmin. Proč tohle není uvedeno na stránkách projektu ? Ještě na něco podstatného zapomněli ?

Thunderbird a hledání ve více složkách zároveň.
Také jsem se setkal s problémem, že potřebuji hledat ve více složkách zároveň. To Thunderbird dovede, nejlépe pomocí rozšíření se jménem Expression Search / GMailUI 0.8.6. Jak jsem již psal, pokud se nejedná o fulltext vyhledávání, ale jen vyhledávání na základě odesilatele, příjemce či předmětu, je vyhledání v podstatě okamžité i při desítkách tisíc emailů.
Type "from:fred to:tom attachment:yes" to see all messages from Fred to Tom in the current view that have an attachment. Press Ctrl+Enter to have this search apply to all folders.
A jak to dělají ostatní? Je mi trochu záhadou, proč něco co potřebuje každá i sebemenší firma, je takto obtížné dovést k dokonalosti.

update 02.01.2014: Vypadá to, že citadel by mohla vyhovovat v popisu mají napsáno: "Built-in full text index for fast searching". A zálohovat do nějakého méně uzavřeného systému (tedy ten co používá třeba mailDir) by mělo jít pomocí offlineimap.
Vypadá to, že Citadel maily uchovává v databázi.
“Enable full text search index,” if enabled, instructs the server to build and maintain a searchable index of all messages on the system. This is a time and resource intensive process – it could take days to build the index if you enable it on a large database. It is also fairly memory intensive; we do not recommend that you enable the index unless your host system has at least 512 MB of memory. Once enabled, however, it will be updated incrementally and will not have any noticeable impact on the interactive response time of your system. The full text index is currently only searchable when using IMAP clients; other search facilities will be made available in the near future.
Citace ze stránky zde http://www.citadel.org/doku.php/documen ... ion_manual

update 03.1.2014 : A co takto přidávat poznámky o emailech rovnou do do samotných emailů ? To imap nedovoluje. Pokud chci email změnit, musím jej smazat a nahrát nový téměř stejný. Thunderbirdu mohu email editovat tak, že jej přemístím do složky koncepty a poté opět zpět. nebo pomocí addon. Např. https://addons.mozilla.org/cs/thunderbi ... src=search
Zamčeno