Parse if there have been new mails synched to the local dir.

Tomasz Żok tomasz.zok at gmail.com
Tue Jan 29 22:37:20 GMT 2013


Hi,

you can have something like this in the .offlineimaprc:

[Account NAME]
...
postsynchook = /path/to/any/script.sh


I am using Awesome as a window manager and it has the library named Vicious
that shows the required info from maildir using the following:

    1) To check how many new messages you have:
        find /path/to/MAILDIR/ -type f -wholename '*/new/*' | wc -l

    2) To check how many old but unseen messages you have:
        find /path/to/MAILDIR/ -type f -regex '.*/cur/.*2,[^S]*$' | wc -l


An even better option would be to use inotify which will not use any CPU or
disk IO. It will be simply informed by kernel when new email shows up. I had
once such script, but lost it and did not have motivation to rewrite it yet ;).
But it is possible in a shell script, it is nothing complicated so maybe
someone else from the mailing list came with such solution and would like to
share.

Best regards,
Tomasz Zok


On 01/29/13 at 11:15pm, Profpatsch wrote:
> Hi offlineimap team,
> 
> I’m setting up offlineimap with mutt atm and want to write a small
> script that pipes a “New Mail” to my i3status when there is any.
> 
> I studied oi’s output but I haven’t found any indication that I could
> parse to see if there are new mails.
> 
> The script I’ve come up with so far is doing a
> `find $MAIL -printf %t | md5sum`
> which creates a hash over the last modified times of the whole maildir.
> Then it checks with the hash from the last run and if they differ, the
> statusbar shows “Mail changed” until the next run (which is a cron job
> done every ~5 minutes).
> 
> But it can only see when there are changes to the maildir (and it
> somehow deleted my whole maildir once—lucky me has backups).
> 
> Any ideas?
> 
> ~Profpatsch




More information about the OfflineIMAP-project mailing list