Create mail directory
At first create the directories which are needed for your mail account. For example:
mkdir -p ~/Mails/autistici/Initialize the mu database
After installing mu4e, initialize the mu database by pointing it to your Mail directory:
mu init --maildir /home/INSERT_USERNAME_HERE/Mails --my-address cashmeresamurai@autistici.org
Then index your emails so they become searchable in Emacs:
mu index
Once indexing is complete, you can use mu4e in Emacs to manage and read your mails.
You can adjust ~/Mails to match your actual mail directory path.
Current configuration
(use-package mu4e
:straight nil
:ensure nil
:config
(setq mu4e-mu-binary (executable-find "mu"))
(setq mu4e-maildir "~/Mails")
(setq mu4e-get-mail-command (concat (executable-find "mbsync") " -a"))
(setq mu4e-update-interval 300)
(setq mu4e-attachment-dir "~/Downloads")
(setq mu4e-change-filenames-when-moving t)
(setq mu4e-user-mail-address-list
'("cashmeresamurai@autistici.org"
"cashmere@cashmere.rs"))
(setq mu4e-contexts
`(,(make-mu4e-context
:name "autistici"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/autistici" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "cashmeresamurai@autistici.org")
(user-full-name . "cashmere")
(mu4e-drafts-folder . "/autistici/Drafts")
(mu4e-sent-folder . "/autistici/Sent")
(mu4e-trash-folder . "/autistici/Trash")
(mu4e-refile-folder . "/autistici/Archive")))
,(make-mu4e-context
:name "cashmere"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/cashmere/cashmere" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "cashmere@cashmere.rs")
(user-full-name . "cashmere")
(mu4e-drafts-folder . "/cashmere/cashmere/Drafts")
(mu4e-sent-folder . "/cashmere/cashmere/Sent")
(mu4e-trash-folder . "/cashmere/cashmere/Trash")
(mu4e-refile-folder . "/cashmere/cashmere/Archive")))))
(setq mu4e-context-policy 'pick-first)
(setq mu4e-compose-context-policy 'ask)
(setq sendmail-program (executable-find "msmtp"))
(setq send-mail-function 'sendmail-send-it)
(setq message-send-mail-function 'sendmail-send-it)
(setq message-sendmail-envelope-from 'header)
(setq message-kill-buffer-on-exit t)
(defun mu4e-set-msmtp-account ()
(if (message-mail-p)
(save-excursion
(let* ((from (save-restriction
(message-narrow-to-headers)
(message-fetch-field "from")))
(account
(cond
((string-match "cashmeresamurai@autistici.org" from) "autistici")
((string-match "cashmere@cashmere.rs" from) "cashmere/cashmere"))))
(setq message-sendmail-extra-arguments (list '"-a" account))))))
(add-hook 'message-send-mail-hook 'mu4e-set-msmtp-account))
To synchronize emails up, run the following two commands:
mbsync -a
mu index