Iuj homoj ŝatas legi sian retpoŝton en Emakso. Kompreneble, Emakso inkluzivas ne nur unu sed du retpoŝtlegilojn, el kiuj la plej funkciriĉa estas Gnus. Uzante Gnus vi povas elekti inter pluraj diversaj formatoj por konservi retpoŝton en la loka disko. Eble vi volas uzi offlineimap por elŝuti retpoŝton el IMAP-servilo, kaj ĉar offlineimap uzas la formaton Maildir, vi eble imagus ke la modulo nnmaildir estas ĝuste tio kion vi serĉas.
Tamen, jam estas dokumentite ke ekzistas kelkaj problemoj pri nnmaildir. Precipe, nnmaildir kaj offlineimap ne konsentas pri kiel marki mesaĝon legita. Normale, offlineimap intersamigas tiajn markojn inter la servilo kaj via loka mesaĝujo, tiel ke mesaĝo kiun vi legis en unu loko fine estos markita kiel legita ankaŭ en la alia loko, sed ĉi-kaze ni malbonsortas; oni devus marki malnovajn mesaĝojn legitaj en ambaŭ lokoj, kio pli-malpli sensencigas la intersamigadon de offlineimap.
Alveninte al tiu punkto, plej multaj homoj rezignas pri nnmaildir kaj instalas en sian komputilon Dovecot, malgranda IMAP-servilo, igas ĝin servi la Maildir-dosierujon per IMAP, kaj konektas Gnus al ĝi per la modulo nnimap. Tio estas tre racia solvo, kaj verŝajne la plej sendolora.
Kompreneble, per tia solvo oni maltrafas ŝancon atingi eternan famon
per skribado de kodo, do mi ekfosis en nnmaildir.el
. Mi trovis ke
ĝi ne atentas tion kion diras la specifo de Maildir
pri mesaĝomarkoj, sed konservas markojn laŭ formato propra al Gnus en
la Maildir-dosierujo. Tiu formato restos bezonata, ĉar ne ĉiuj
markoj, kiujn uzas Gnus, estas prezenteblaj per Maildir-markoj, sed la
plej gravaj ("legita", "respondita" kaj "atentenda") povas esti
konservitaj en parto de la dosiernomoj de la mesaĝoj. Mi verkis
flikaĵon kaj afiŝis ĝin en la cimraporto pri
tiu ĉi funkcio. Ekde 2012-09-05 ĝi estas inkluzivita en la ĉefa
branĉo de Gnus, kaj la ŝanĝo aperis en GNU Emacs 24.3.
Do, jen ĝi, preta por testado. Ŝajne estas iuj problemetoj, tiel ke ĝi iam ne markas mesaĝon legita kvankam ĝi devus, sed ĝis nun ĝi ŝajne ne kutimas manĝi ies retpoŝton.
Ne sufiĉe rapida
Restas pliaj farindaĵoj pri nnmaildir; ĝis nun miaj ŝanĝoj nur celis
korektan funkciadon, do la sekva paŝo estas igi ĝin rapida. Ĝi
funkcias sufiĉe bone por retpoŝtujoj kun miloj da mesaĝoj, sed kiam
temas pri dekmiloj startado de Gnus longe daŭras. (La logika solvo
por tio estas neniam eliri el Gnus, sed…) Mi ankoraŭ ne tute certas
pri ĉio ĉi, sed mi pudris informmesaĝojn sur la kodon kaj ĝis nun ili
sugestas ke la plejparto de la tempo uziĝas en
nnmaildir--grp-add-art
. Se mi ĝuste legas tiun kodon,
ĝi ŝajne enmetas ĉiun artikolon, unu post alia, en laŭordan liston
nomatan nlist
. Evidente, en la plej malbona kazo tio havas
kvadratan tempokomplikecon. Miaj pensoj ĉi-momente estas jenaj:
- Ĉu tio ĉi bezonas esti laŭorda listo? (Aliaj partoj de la kodo faras operaciojn je laŭvicaj partoj de tiu ĉi listo, sed eble ni povus uzi arbon aŭ ion tian…)
- Ĉu ni vere bezonas teni ĉion ĉi en la memoro? Temas pri datumoj pri ĉiu mesaĝo en la dosierujo; plej verŝajne ni la plejmulton neniam uzos.
Jen la nuna stato. Mi plu laboros pri tio ĉi, dum liberaj tempoj.