Az elmúlt két hétben szabadidőmben leginkább a már korábban emlegetett listaszerverrel kapcsolatos kódokat, adatbázist reszelgettem. Sikerült összehoznom egy egész jó kis storage engine-t (kidobálja a duplikált csatolmányokat, opcionálisan tömörít, opcionálisan fájlban, vagy az adatbázisban tárolja a levelet). Most elkezdtem játszani a levél fogadással és küldéssel. Ennek kapcsán az egyik igen érdekes probléma, hogy hogyan kezeljük a válaszleveleket, a thread-hierarchiát. Azt látom, hogy a lyris hol megtalálja az összetartozó darabokat, hol nem. Én szeretném elérni, hogy ez a dolog ne legyen ennyire esetleges. Egyenlőre a következő ötleteim voltak:
1. A levél fejlécében lévő Reply-To: mezőbe nem az adott levlista címét írom, hanem valamit amivel azonosítani tudom a levelet. Ilyesmire gondoltam
a_levél_adatbázisbeli_guid-ja@lista_domainneve . Ez ugye reply esetén egész pontosan azonosítja az eredeti levelet, ugyanakkor ha valaki normál levél küldéshez véletlenül ezt a címet használja akkor az alaposan összekavarhatja a dolgokat. Ezt az ügyet egyenlőre félretettem, arra az esetre ha nem lesz más megoldás.
2. Használom az RFC-ben megadott Message-ID:, In-Reply-To:, References: mezőket. Az RFC-822 -ben úgy tűnik, hogy ez opcionális az RFC-2822 -ben mintha kötelező lenne. Biztos az én angol tudásommal van baj, de ebből nem tudom eldönteni (23.oldal 3.6.4-es pont):
Though optional, every message SHOULD have a "Message-ID:" field. Furthermore, reply messages SHOULD have "In-Reply-To:" and "References:" fields as appropriate, as described below. ...
Azt értem, hogy igazából ezt kellene használni, de megnézve a lyris-es leveleket igen kevésben találtam meg az In-Reply-To: mezőben a szülő levél azonosítóját, ráadásul az Exchange 2003 / Outlook 2003 páros sem teszi bele a levélbe.

(Valaki megmondhatná, hogy valójában ezt kötelező-e megcsinálni és ha igen akkor az Exchange/Outlook miért nem teszi? Vagy ha teszi akkor nekem miért nem?)
3. Találni valami olyan fejlécmezőt ami a levél továbbítását nem befolyásolja, viszont reply esetén benne marad. Ezt kipróbáltam egy általam kreált X- mezővel, de nem működött.
4. Belegenerálok valamit a levél szövegébe és amikor visszajött akkor megkeresem benne. Ezzel több bajom is van. Mi van akkor, ha több ilyen van benne? Mi van a digitálisan aláírt levelekkel (ugye ezeket nem szabad módosítani, ezt sajnos nem minden listaszerver tartja be).
Egyenlőre tanácstalan vagyok, keresem tovább a megoldást.