IMAP NA EXCHANGI

Written in

by

V práci jsme rozeběhli nový a opravdu sqělý systém na klasifikaci a sledování požadavků na helpdesk Request Tracker. Je to open source software napsaný v perlu, s web interfacem napojeným na email schránku. V praxi to u nás funguje tak, že co přijde na adresu it_support@moj_firma.cz je zároveň v Exchangi zkopírováno do schránky speciálně vytvořené pro Request Tracker, odkud to stahuju fetchmailem, který má ve svém configu jako mta uveden skript RT. Každý nový email je pak evidován jako nový ticket, neboli task a můžeme mu přiřadit poměrně dost atribudů (z nichž asi nejdůležitější je priorita, řešitel neboli owner a kategorie, které jsem v systému definoval jako uživatelské položky).

No ale abych se dostal k tomu IMAPu. Dříve jsme mĂ­sto tohohle systĂŠmu pouŞívali prostě sdĂ­lenou schrĂĄnku v exchangi kde byly vytvořeny foldery jako „v řeĹĄenĂ­ Petr“ nebo „vyřeĹĄeno Josef“ čímĹž se řeĹĄil přehled nad aktuĂĄlnĂ­mi a řeĹĄenĂ˝mi i vyřeĹĄenĂ˝mi tĂĄsky.

S přechodem na nový systém si kolegové velice rychle všimli, že je celkem hloupost, aby v RT označili ticket jako svůj a pak museli ve sdíleném inboxu přetáhnout email do své složky. To samé pak museli dělat při vyřešení tásku. Prostě sem dostal za úkol nějak dosáhnout toho, aby při označení ticketu za můj se překopírovaly příslušné emaily.

Našel jsem na netu project ImapFolderManager, který ale neumí zprávy kopírovat na záklaďě nějakého bližšího kritéria než na tom, že jsou v nějaké složce. Já sem usoudil, že nejlépe se bude přesouvat na základě předmětu emailu. Dopsal jsem si tedy do toho projektíku funci vypsání subjektů daného emailu a pak kopírování emailů na základě předmětu. Při tom jsem přišel na zvláštní věc. Exchange server (alespoň tedy ta stařičká verze 5.5, co ještě dožívá u nás v práci) co se týče IMAPu se chová docela podivně. U IMAPu můžete totiž email smazat tak, že ho označíte za smazaný a k reálnému smazání dojde teprve ve chvíli, kdy pro danou složku řeknete aby to vymazala. Jenže Exchange, nebo možná Outlook 2003, který používám přes rdesktop ke čtení téhe schránky, bohužel ten email pořád normálně zobrazuje, protože po každém označení za smazaný hned očekává akci CLOSE, která danou složku vyčistí od emailů označených deleted.

$ telnet mail 143
Trying 192.168.110.2...
Connected to mail.moje_firma.cz.
Escape character is '^]'.
* OK Server Microsoft Exchange IMAP4rev1 verze 5.5.2653.23 (mail.moje_firma.cz) je pøipraven.
a001 LOGIN muj_ucet heslo
a001 OK Operace LOGIN je dokonèena.
a002 SELECT INBOX/Trash 
* 5 EXISTS
* 0 RECENT
* FLAGS (\Seen \Answered \Flagged \Deleted \Draft)
* OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft)]
* OK [UIDVALIDITY 56723] Hodnota UIDVALIDITY.
a002 OK [READ-WRITE] Operace SELECT je dokonèena.
a003 STORE 1:2 +FLAGS (\Deleted)
* 1 FETCH (FLAGS (\Seen \Deleted))
* 2 FETCH (FLAGS (\Seen \Deleted))
a003 OK Operace STORE je dokonèena.
a004 CLOSE
a004 OK Operace CLOSE je dokonèena.

Tags

Napsat komentář