[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Nmh-workers] various tidbits and helpers

From: Alexander Botero-Lowry
Subject: [Nmh-workers] various tidbits and helpers
Date: Tue, 05 Dec 2006 16:51:19 -0800


I've been using nmh since about September as my main mailer. I'm quite
pleased with the implementation as it follows my general desires in a
program, which is, to not be in my way, and to be accessible via the
command line. This is why I'm involved with the XMMS2 project, as it 
provides a very powerful music player that runs as a daemon and is
both easily programmable (clients are easy to write, with bindings
for the client library in a variety of languages), and with a command
line client in the base distribution. 

Back to nmh; I've run into a few annoyances and have made, or been working
on solutions to deal with them. The first is better handling of non text
in mhshow, which I imagine most people have good solutions for, so I won't
share. Other issues I have run into are that I do not much like having to
write out full mhbuild lines to send attachments properly. So I wrote a 
simple Python script to replace ``remime'' lines with proper mhbuild lines 
and then execute mhbuild. remime is not very powerful, it's not intended to 
be. It takes a filename, and uses magic to determine a description and a 
mime-type and then constructs an mhbuild line with that information included. 
Something like #remime: /home/alex/mh.png becomes #image/png; name="mh.png" 
<>[ PNG image data, 1400 x 1050, 16-bit/color RGB, non-interlaced ] 
/home/alex/mh.png. remime becomes the buildmimeproc. You can take a look at 
remime here: http://people.FreeBSD.org/~alexbl/remime It requires the Python 
bindings for libmagic which come with the file distribution. 

I have been working on two other things with varying degrees of success. One 
is a gpg signer and verifer. I've not found any acceptable solutions for gpg 
signing my mail, and worse, I have found that multipart/MIME messages signed 
by exmh can often times not even be verified (I recently had to submit ssh key 
and master.passwd line for a new FreeBSD committer, which I sent via exmh, 
where verification of the signature failed.) I've not had too much luck with 
this one since it needs to be done after the mhbuild phase, and all of my 
attempts seem to turn out badly, so any advice on this one would be much 
appreciated. (NB. My desire is not to use Exmh in this case, I just figured
it would be ``safe.'')

The next one I imagine will be a bit controversial. I've been working on a
replacement for pick which works by picking on an index generated by the
inc(1) process. (In this case, python wrapper around inc which parses the
scan output and inserts header information about each mail into a sqlite3
database.) The idea being that while I like being able to manipulate my mail
directly, searching it is tedious and slow. With a sqlite database backing
the search the speed of these operations will be helped a ton. The largest
concern is implementing the complete feature set of pick (and hopefully
more, I hope to get FTS as well), and being able to keep the index up to
date without removing a lot of the flexibility offered by MH.) I like being
able to manipulate mails directly if I feel like it, so I intend to maintain
this behavior.

Oh, I also have a somewhat sketchy script which reads in all the msg-ids
from my imap accounts inboxes, and all the msg-ids from my MH folders and
removes messages from imap accounts that aren't in MH folders (a way to sync
what mail I have locally with what I have remotely). With this I can more or
less use a regular imap or webmail client when I need it without opening up
an 11k message inbox or losing the ability to keep the mail on the server.
It curently only works on imap inbox, but I hope to extend it to actually
synchronize folders in the future.

Anyway, any comments on the various stuff I've done are much appreciated,
nmh is the mail program I've dreamed of forever, so thanks for making it

Alexander Botero-Lowry
FreeBSD Ports Committer & XMMS2 Developer

reply via email to

[Prev in Thread] Current Thread [Next in Thread]