Next: , Previous: , Up: Interaction with other tools   [Contents]


A.6 Getting new mail notifications with Sauron

The emacs-package sauron43 (by the same author) can be used to get notifications about new mails. If you run something like the below script from your crontab (or have some other way of having it execute every n minutes), you receive notifications in the sauron-buffer when new messages arrive.

#!/bin/sh

# the mu binary
MU=mu

# put the path to your Inbox folder here
CHECKDIR="/home/$LOGNAME/Maildir/Inbox"

sauron_msg () {
    DBUS_COOKIE="/home/$LOGNAME/.sauron-dbus"
    if test "x$DBUS_SESSION_BUS_ADDRESS" = "x"; then
        if test -e $DBUS_COOKIE; then
                export DBUS_SESSION_BUS_ADDRESS="`cat $DBUS_COOKIE`"
        fi
    fi
    if test -n "x$DBUS_SESSION_BUS_ADDRESS"; then
        dbus-send --session                          \
            --dest="org.gnu.Emacs"                   \
            --type=method_call                       \
            "/org/gnu/Emacs/Sauron"                  \
            "org.gnu.Emacs.Sauron.AddMsgEvent"       \
            string:shell uint32:3 string:"$1"
    fi
}

#
# -mmin -5: consider only messages that were created / changed in the
# the last 5 minutes
#
for f in `find $CHECKDIR -mmin -5 -a -type f`; do
        subject=`$MU view $f | grep '^Subject:' | sed 's/^Subject://'`
        sauron_msg "mail: $subject"
done

You might want to put:

(setq sauron-dbus-cookie t)

in your setup, to allow the script to find the D-Bus session bus, even when running outside its session.


Footnotes

(43)

Sauron can be found at https://github.com/djcb/sauron, or in the Marmalade package-repository at http://http://marmalade-repo.org/