Indexing your mail using glimpse can be done from within exmh, but it's often more useful to have cron do this for you so you can seach your mail easily.
Exmh recommends glimpse for this, and whilst there are some licensing funnies with later versions, earlier versions (3.x I beleive) have pretty open licensing.
Here's my cronjobs and script that I run from cron every night to index my mail and perform general hygene of my mail folders, YMMV:
# pull Mail from IMAP server - exit 0 shuts up cron if there's no mail # no mail = exit(1) from fetchmail 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /ms/dist/fsf/bin/fetchmail >> /ms/user/a/and/Mail/fetchmail.log 2>&1 ; exit 0 # clear deleted mail after a week 3 5 * * 0 find /ms/user/a/and/Mail -name ',*' -mtime +5 -print | xargs rm # index my mail daily 20 20 * * * /ms/user/a/and/scripts/mailindex
$ cat /ms/user/a/and/scripts/mailindex
#!/bin/ksh
# mailindex - run glimpseindex to index all of $HOME/mail
#GLIMPSE=/ms/dist/fsf/PROJ/glimpse/3.6/bin/glimpseindex
#MH_DIR=/ms/dist/fsf/PROJ/mh/6.8.3/
GLIMPSE=/ms/dist/fsf/PROJ/glimpse/4.1/bin/glimpseindex
MH_DIR=/ms/dist/fsf/PROJ/nmh/1.0
MAIL=$HOME/Mail
# clean the current log
agelog $MAIL/mailindex.log 7
echo 'Glimpse log rolls at \c' >$MAIL/mailindex.log
date >>$MAIL/mailindex.log
agelog $MAIL/glimpseindex.log 7
echo 'fetchmail log rolls at \c' >>$MAIL/mailindex.log
date >>$MAIL/mailindex.log
agelog $MAIL/fetchmail.log 7
echo 'procmail log rolls at \c' >>$MAIL/mailindex.log
date >>$MAIL/mailindex.log
agelog $MAIL/procmail.log 7
echo 'procmail log rolls finished at \c' >>$MAIL/mailindex.log
date >>$MAIL/mailindex.log
# update $MAIL/.folders
$MH_DIR/bin/folders -fast -recurse -all | grep -v '^\.glimpse' > $MAIL/.folders
# pack folders weekly on a Sunday
if [[ `date +%w` -eq 0 ]]
then
# for encoded headers (see exmh FAQ 2c)
export MM_CHARSET=iso-8859-1
for i in `cat $MAIL/.folders | grep -v \.glim`
do
rm $MAIL/$i/.xmhcache
$MH_DIR/bin/folder +$i -pack >>$MAIL/mailindex.log
$MH_DIR/bin/scan +$i -noheader >$MAIL/$i/.xmhcache
done
fi
# build up glimpseindexes
for i in `cat $MAIL/.folders | grep -v \.glim`
do
if [[ ! -d $MAIL/.glimpse/$i ]]
then
mkdir -p $MAIL/.glimpse/$i
# make sure we don't index subfolders or deleted files
# your home dir will get very big without this
# one run of glimpseindex from the exmh front end will create this file
cp $MAIL/.glimpse/inbox/.glimpse_exclude $MAIL/.glimpse/$i
fi
echo "Glimpsindex starting $i at \c" >>$MAIL/mailindex.log
date >>$MAIL/mailindex.log
# glimpse stats cumulate in this file
if [[ -f "$MAIL/.glimpse/$i/.glimpse_statistics" ]]
then
mv $MAIL/.glimpse/$i/.glimpse_statistics $MAIL/.glimpse/$i/.glimpse_statistics.old
fi
$GLIMPSE -H $MAIL/.glimpse/$i $MAIL/$i | egrep '(Indexing|Size)' >> $MAIL/glimpseindex.log
echo "Glimseindex finishing $i at \c" >>$MAIL/mailindex.log
date >>$MAIL/mailindex.log
done