This module turns Emacs into an email client using doom-package:notmuch.
This module needs a maintainer. Become a maintainer?
- +afew
- Enable integration with afew.
- +org
- Enable doom-package:org-mime for writing HTML emails using org-mode.
- doom-package:counsel-notmuch if doom-module::completion ivy
- doom-package:helm-notmuch if doom-module::completion helm
- doom-package:notmuch
- doom-package:org-mime* if doom-module:+org
This module’s hacks haven’t been documented yet. Document them?
This module does not have a changelog yet.
Enable this module in your doom!
block.
This module requires:
- Either gmailieer (default), mbsync or offlineimap – to sync mail with.
- notmuch – to index and tag your downloaded messages.
- afew – optionally to initially tag your downloaded messages.
Run one of the following commands:
pacman -S isync notmuch #mbsync
pacman -S offlineimap notmuch
See: Arch Wiki - Notmuch
environment.systemPackages = with pkgs; [
notmuch
# And one of the following
gmailieer
isync
offlineimap
];
An example of setting up mbsync and notmuch with home-manager
This module’s usage documentation is incomplete. Complete it?
Keymap | Command | Description |
---|---|---|
<localleader> u | +notmuch/update | Download, sync, and index emails with notmuch |
<localleader> c | +notmuch/compose | Compose new email |
This module’s configuration documentation is incomplete. Complete it?
To download your email you need a sync backend. Out of the box, this module
supports Gmailier
(the default), mbsync
, and offlineimap
(ordered by
speed). You may define a custom one as well. The guides below will walk you
through setting them up with notmuch.
Later, once you’ve set up a sync backend and downloaded your email, you must index your email for the first time:
notmuch new
Lieer, formerly called Gmailieer, is the indexing tool used by default. To install lieer, see the installation docs.
To use offlineimap, change +notmuch-sync-backend
:
;; add to $DOOMDIR/config.el
(setq +notmuch-sync-backend 'offlineimap)
Next, write a configuration file for offlineimap
. Here is a comprehensive
example and another minimal one.
As a real world example, here is my old config, where it is configured to
download mail to $HOME/.mail
. I used unix pass to securely store my login
credentials.
Finally, download your email with $ offlineimap -o
. This may take a while,
especially if you have thousands of emails.
To use mbsync, change +notmuch-sync-backend
:
(setq +notmuch-sync-backend 'mbsync)
;; Use `mbsync-xdg' if your mbsync config lives in $XDG_CONFIG_HOME/isync:
(setq +notmuch-sync-backend 'mbsync-xdg)
The steps needed to set up notmuch
with mbsync
are similar to the ones for
offlineimap.
Start with writing a $HOME/.mbsyncrc
to store your configuration. An example
for GMAIL can be found on the ArchWiki which will also explain how its
integration with notmuch for auto synchronization. A non-GMAIL example is
available as a gist here.
Finally, download your email with $ mbsync --all
. This may take a while, but
will be quicker than offlineimap
.
If you have a unique method for synchronizing your email, you can define your own backend:
;; Set this to an arbitrary shell command
(setq +notmuch-sync-backend "my-notmuch-sync-cmd")
- notmuch docs: Sending mail
- notmuch docs: msmtp, message mode and multiple accounts
- notmuch docs: sending mail using smtpmail
It is possible to change the *notmuch-hello*
buffer if you want to.
;; add to $DOOMDIR/config.el
(after! notmuch
(setq notmuch-show-log nil
notmuch-hello-sections `(notmuch-hello-insert-saved-searches
notmuch-hello-insert-alltags)
;; To hide headers while composing an email
notmuch-message-headers-visible nil))
You may want to forego the *notmuch-hello*
buffer by having M-x =notmuch
or
<leader> o m take you straight to a search page.
When using <leader> o m the +notmuch-home-function
is called. By default it
uses the notmuch
function and so has the same familiar behavior of running a
vanilla install of notmuch-emacs. But, by overwriting this function you can run
a custom search as your landing page.
(setq +notmuch-home-function (lambda () (notmuch-search "tag:inbox")))
The org-mime package provides functionality for composing emails in org-mode and
transforming them to HTML. This feature is enabled using the +org
flag.
Example use cases:
- To convert an email to an HTML email use
M-x org-mime-htmlize
. - To compose email using an org-mode editor buffer, use
M-x org-mime-edit-mail-in-org-mode
.
If you’d like to make configuration changes to org-mime
, you may do so
normally. By default the output of org-mime-htmlize
includes section numbers,
a byline, and a table of contents. That’s probably more formal than the emails
you’re used to sending, so here’s some example configuration that turns those
features off:
;; add to $DOOMDIR/config.el
(after! org-mime
(setq org-mime-export-options '(:section-numbers nil
:with-author nil
:with-toc nil)))
There are no known problems with this module. Report one?
This module has no FAQs yet. Ask one?
This module has no appendix yet. Write one?