It can sometimes be useful to discard or rewrite the contact information
that mu4e provides, for example to fix spelling errors, or omit
unwanted contacts.
To handle this, mu4e provides mu4e-contact-process-function,
which, if defined, is applied to each contact. If the result is nil,
the contact is discarded, otherwise the (modified or not) contact
information is used.
Each contact is a full e-mail address as you would see in a contact-field of an e-mail message, e.g.,
"Foo Bar" <foo.bar@example.com>
or
cuux@example.com
An example mu4e-contact-process-function might look like:
(defun my-contact-processor (contact)
(cond
;; remove unwanted
((string-match-p "evilspammer@example.com" contact) nil)
((string-match-p "noreply" contact) nil)
;;
;; jonh smiht --> John Smith
((string-match "jonh smiht" contact)
(replace-regexp-in-string "jonh smiht" "John Smith" contact))
(t contact)))
(setq mu4e-contact-process-function 'my-contact-processor)