[linux] citanie posty

Marcel Telka marcel na telka.sk
Neděle Září 30 23:28:55 CEST 2001


Ahoj.

Narychlo vymyslena (mozno nedomyslena :-), cisto teoreticka idea:

Uvodna poznamka: Tato moja idea je bez zaruky, a predpoklada, ze na mail
serveri aj na klientovi mozme robit psie kusy :-).

Predpokladajme, ze na (mail) serveri su maily ulozene tak, ze kazdy mail je
v samostatnom subore. Nazov tohoto suboru by mal byt jedinecny (pre istotu,
mozno to nie je nutne :-) nie len v danom momente, ale celkovo (t.j. iny
mail v buducnosti ani v minulosti nesmie mat rovnaky nazov suboru). Dalej
predpokladajme, ze maily mame ulozene v dvoch adresaroch, nazvime si ich
napr. cur a new (dovod a pouzitie vysvetlim neskor :-). Obidve tieto
podmienky splna napr. qmail.

Dalej potrebujeme nieco, co nam vie sledovat verzie suborov (napr. CVS).
CVS server moze byt nainstalovany kdekolvek, mal by byt vsak pristupny
minimalne po dobu prace s tymto systemom (po dobu pripojenia klienta). CVS
klient musi byt nainstalovany na serveri aj na klientoch. V CVS bude
ulozeny subor s nazvom ZOZNAM, ktory na zaciatku bude prazdny.

Poznamka: Pravdepodobne bude sposobovat mierne problemy pokus o pracu s
takymto serverom sucasne z dvoch klientov (t.j pristupy na server asi bude
treba serializovat).

ZOZNAM obsahuje zoznam "zivych" mailov. T.j. tych, ktore "su v systeme" :-)

Mail server pracuje tak, ze dorucuje maily do adresara new.

Klient si maily uklada tak, ze kazdy je v jednom subore, nazvy suborov su
prevzate z nazvov suborov na servri.

Postup synchronizacie posty:

1. Klient sa pripoji na internet a na server.

2. Server stiahne z CVS aktualny ZOZNAM.
3. Server presunie maily z adresara new do adresara cur a prida ich zoznam
na koniec suboru ZOZNAM.
4. Maily, ktore nie su v ZOZNAMe, ale su v adresari cur, server z adresara
cur vymaze.
5. Server commitne ZOZNAM na CVS server.

6. Klient si stiahne aktualny ZOZNAM z CVS.
7. Maily, ktore nie su v ZOZNAMe si klient vymaze z disku.
8. Maily, ktore su v zozname, ale nie su na disku sa pokusi klient stiahnut
zo servera z adresara cur.
9. Maily, ktore sa nepodari stiahnut zo servra klient vymaze zo ZOZNAMu.
10. Klient commitne ZOZNAM na CVS.

11. Klient sa odpoji od servera a od internetu.

To by malo byt vsetko.

Tento postup je neotestovany a moze sposobit lubovolne skody (vratane
preformatovania disku a poskodenia tlaciarne :-).

Je mozne, ze nieco podobne uz niekde existuje hotove...

Ahoj.

PS: Ked tak nad tym teraz uvazujem, asi nie je nutne pouzit CVS server,
staci len nejake miesto, kde sa bude ZOZNAM skladovat.
CVS server je pouzitelny na to, ze moze zabranit (a vyzera to tak, ze
asi naozaj zabrani) pokusu o paralelnu pracu dvoch klientov (zlyha
commit v bode 5 alebo 10, pripadne update v bode 2).

PS2: Skoda, ze je uz tak vela hodin. Chcelo by to asi sa nad tymto
systemom este trosku zamysliet...

PS3: Len pre Juraja: gettext

PS4: A neda sa na toto pouzit IMAP (pripadne mierne modifikovany)?

-- 
+--------------------------------+
| Marcel Telka <marcel na telka.sk> |
| http://telka.sk/               |
+--------------------------------+




Další informace o konferenci linux