Posted
on
in
Projects
• 280 words
• 2 minute read
Tags:
offline, msmtp, email, mutt

I use a program called mutt for managing my email. A
lot of the time, I want to download all of my messages and use mutt offline
(for example, when I’m on the train commuting to work). In these cases, I also
want to be able to queue email messages to send once I get back online. Even
when I am online, sometimes the process of sending the message can take a while
(with a large attachment, for example), and I don’t want mutt to freeze while
the email is being sent.
For downloading messages for viewing offline, I use a program called mbsync
which is part of the isync project. However, I
could not find a program to replace msmtp (the program that is normally used
to send email from within mutt). So, naturally I wrote my own program to
handle this:
offlinemsmtp has two components:
A daemon which listens for changes to the configured outbox folder on the local filesystem. When a new message appears in the outbox folder,
offlinemsmtpsends the email immediately if the server is available. At a configurable interval,offlinemsmtpattempts to send the emails that are still in the folder (due to not having been sent earlier).An enqueuer for adding mail messages to the outbox folder.
Once you have configured both of these components, offlinemsmtp is a drop-in
replacement for msmtp in mutt. So, if your sendmail configuration was:
set sendmail = "msmtp -a personal"
with offlinemsmtp it would become:
set sendmail = "offlinemsmtp -a personal"
You can find more information about offlinemsmtp and its configuration options
at the project’s GitHub page.
offlinemsmtp version 0.3.5, is available via
PyPi and the
AUR.
