Uso Mu4e . È ben documentato (anche tramite Info) e, al momento della stesura di questo documento, è stato sviluppato attivamente .
Mu4e viene fornito come componente aggiuntivo di mu , "un insieme di strumenti per gestire Maildir e file di messaggi, in particolare per indicizzare e cercare messaggi di posta elettronica" . Funziona insieme a offlineimap o fetchmail . Uso anche il pacchetto Emacs smtpmail-multi in modo da poter inviare da account diversi con impostazioni diverse. Per una perfetta integrazione con il tuo provider di posta elettronica, dovresti apt-get install ca-certificates
. E se vuoi una versione gestita dal pacchetto, puoi prendere mu stesso con apt-get install maildir-utils
.
Vengono fornite diverse configurazioni di esempio , inclusa la seguente "configurazione minima":
(require 'mu4e)
(setq message-send-mail-function 'smtpmail-send-it
smtpmail-default-smtp-server "smtp.example.com"
smtpmail-smtp-server "smtp.example.com"
smtpmail-local-domain "example.com")
A seconda della configurazione del tuo provider di posta, dovrai fare un po 'di più; e in particolare, dovrai configurare OfflineIMAP o Fetchmail per recuperare effettivamente la posta. Nella mia configurazione, mostrata di seguito, ho impostato tutto per funzionare con due account. Se hai solo bisogno di recuperare da un account, potresti fare riferimento al campione .offlineimaprc incluso nel manuale mu4e.
Per quanto riguarda le estensioni e l'integrazione con altri pacchetti di Emacs: Mu4e si integra comodamente con la modalità Org (per l'acquisizione di collegamenti a messaggi o le ricerche personalizzate, e anche per l'authoring HTML messaggi di posta elettronica formattati utilizzando la sintassi Org, anche se io non uso questa caratteristica) attraverso la dotazione org -mu4e.el . C'è un'integrazione helm-mu separata che è utilizzabile, ma ha bisogno di un po 'più di lavoro IMO. È a tema in solarized.el . C'è anche un'estensione mu4e-maildirs che fornisce un conteggio conveniente di messaggi letti e non letti per directory di posta, e ci sono altre cose che non ho provato.
Insieme ai documenti, queste configurazioni di esempio possono aiutare un nuovo utente mu4e a decollare.
.offlineimaprc
[general]
accounts = Gmail, Uni
maxsyncaccounts = 3
[Account Gmail]
localrepository = Local
remoterepository = Remote
status_backend = sqlite
[Repository Local]
type = Maildir
localfolders = ~/Maildir/google
[Repository Remote]
type = IMAP
remotehost = imap.gmail.com
remoteuser = other.e.mail@gmail.com
remotepass = TryAndGuess12345
ssl = yes
maxconnections = 1
realdelete = no
# cert_fingerprint = fa88366ccd90cd02f7a5655800226c43c8044ada
# but they change all the time, so...
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
# Folders to get:
#
# In Gmail, filter all current mail that isn't *otherwise*
# filtered into the folder or folders you want to receive/sync.
# Keep that up to date; it will boost efficiency if you would
# otherwise be syncing a very large "Inbox" here.
folderfilter = lambda foldername: foldername in [
'JUNE2015', 'Drafts', 'Sent']
[Account Uni]
localrepository = UniLocal
remoterepository = UniRemote
status_backend = sqlite
[Repository UniLocal]
type = Maildir
localfolders = ~/Maildir/uni
[Repository UniRemote]
type = IMAP
remotehost = pod666.outlook.com
remoteuser = username@campus.university.ac.uk
remotepass = TryAndGuess9876
ssl = yes
maxconnections = 1
realdelete = no
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
Config per mu4e
e smtpmail-multi
:
;;; Replies
(setq message-citation-line-function 'message-insert-formatted-citation-line)
(setq message-citation-line-format "On %a, %b %d %Y, %f wrote:\n")
;;; smtp
(add-to-list 'load-path "~/smtpmail-multi")
(require 'smtpmail-multi)
(require 'smtpmail)
(setq smtpmail-multi-accounts
(quote
((uni . ("username@campus.university.ac.uk"
"pod666.outlook.com"
587
"e.mail@uni.ac.uk"
nil nil nil nil))
(gmail . ("other.e.mail@gmail.com"
"smtp.gmail.com"
587
"other.e.mail@gmail.com"
starttls
nil nil nil)))))
(setq smtpmail-multi-associations
(quote
(("other.e.mail@gmail.com" gmail)
("e.mail@uni.ac.uk" uni))))
(setq smtpmail-multi-default-account (quote gmail))
(setq message-send-mail-function 'smtpmail-multi-send-it)
(setq smtpmail-debug-info t)
(setq smtpmail-debug-verbose t)
;;; MU4E config
(require 'shr)
(defun shr-render-current-buffer ()
(shr-render-region (point-min) (point-max)))
(setq mu4e-compose-dont-reply-to-self t)
(setq mu4e-compose-signature-auto-include nil)
(setq mu4e-html2text-command 'shr-render-current-buffer)
(setq mu4e-mu-binary "~/mu/mu/mu")
(setq user-full-name "Hello World")
(setq user-mail-address "other.e.mail@gmail.com")
(setq mu4e-hide-index-messages t)
(setq
mu4e-maildir "~/Maildir" ;; top-level Maildir
mu4e-sent-folder "/sent" ;; folder for sent messages
mu4e-drafts-folder "/drafts" ;; unfinished messages
mu4e-trash-folder "/trash" ;; trashed messages
mu4e-refile-folder "/archive") ;; saved messages
(setq
mu4e-get-mail-command "offlineimap" ;; -a Uni to just do university acc't
mu4e-update-interval nil) ;; 300 to update every 5 minutes
(setq mu4e-bookmarks
'( ("flag:unread AND NOT flag:trashed" "Unread messages" ?u)
("date:today..now" "Today's messages" ?t)
("date:7d..now" "Last 7 days" ?w)
("date:1d..now AND NOT list:emacs-orgmode.gnu.org" "Last 1 days" ?o)
("date:1d..now AND list:emacs-orgmode.gnu.org" "Last 1 days (org mode)" ?m)
("maildir:/sent" "sent" ?s)
("maildir:/uni/INBOX AND date:7d..now" "University Last 7 days" ?g)
("maildir:/google/JUNE2015 AND date:7d..now" "Gmail Last 7 days" ?c)
("mime:image/*" "Messages with images" ?p)))
(setq mu4e-maildir-shortcuts
'( ("/google/JUNE2015" . ?c)
("/uni/INBOX" . ?g)
("/sent" . ?s)))
(setq mu4e-user-mail-address-list (list "other.e.mail@gmail.com" "e.mail@uni.ac.uk"))
(setq message-kill-buffer-on-exit t)
(setq
mu4e-view-show-images t
mu4e-view-image-max-width 800)
;; A little demo function for switching accounts
(defun switch ()
(interactive)
(save-excursion (goto-char (point-min))
(forward-char 19)
(cond
((looking-at "other.e.mail@gmail.com")
(delete-region (match-beginning 0) (match-end 0))
(insert "e.mail@uni.ac.uk")
(buffer-face-set 'default))
((looking-at "e.mail@uni.ac.uk")
(delete-region (match-beginning 0) (match-end 0))
(insert "other.e.mail@gmail.com")
(buffer-face-set 'bold-italic))
(t nil))))
(add-hook 'mu4e-compose-mode-hook (lambda () (buffer-face-set 'bold-italic)))
;;; Saving outgoing mail
;; Following tip from documentation for `mu4e-sent-messages-behavior' - see also
;; http://www.djcbsoftware.nl/code/mu/mu4e/Saving-outgoing-messages.html
;; for some related points, but not necessary to do things both ways.
(setq message-sendmail-envelope-from 'header)
(setq mu4e-sent-messages-behavior
(lambda ()
(if (string= (message-sendmail-envelope-from) "other.e.mail@gmail.com")
(progn (message "Delete sent mail.")
'delete)
(progn (message "Save sent mail.")
'sent))))
;;; Org mode compatibility
;; Use `org-store-link' to store links, and `org-insert-link' to paste them
(require 'org-mu4e)
;;; That's all
(provide 'my-mu4e-config)
screenshot: navigazione con l'elenco dei termini di ricerca: emacs-orgmode.gnu.org