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.

nnmaildir, la realigo de Maildir en Gnus, ne konsentas kun offlineimap pri kiel aspektas legita mesaĝo. Mi provas ripari tion, kaj ankaŭ aliajn problemojn pri nnmaildir.

Mi ne povas komenti pri la flikaĵo ĉar mi ne plu uzas na Gnus. Mi iam finfine tediĝis pro la marapideco kaj komplikeco de Gnus kaj ŝanĝis al notmuch kaj mi ankoraŭ tute ne bedaŭras tion. Ĝi funkcias pli simile al GMail ĉar anstataŭ devi dividi la mesaĝojn en ujojn, oni simple aldonas etikedojn. Tiel unu mesaĝo povas havi pli ol unu etikedon. Do mi povas havi etikedon por 'todo' [farenda] kaj la mesaĝoj kun tiu etikedo povas veni el iu ajn mesaĝlisto. notmuch bone funkcias kun maildir kaj ĝi ne bezonas apartan IMAP-servilon. La ĉefa interfaco estas en Emakso sed ĝi vokas komandlinian programon verkita en C por fari la laboron. Tial ĝi estas tre rapida. Ĝi estas tre provinda se vi ne jam provis ĝin!
Comment by Neil Fri 14 Sep 2012 11:10:58 AM BST