Insérer sa signature à la fin du corps du message

Par défaut, mu4e insère la signature tout à la fin du message, après les citations lorsqu’on répond ou forward un message. Cette issue #706 sur github indique comment faire pour éviter ce problème. Mais comme indiqué sur ce post, les deux tirets sont hardcodés dans le code de la fonction (message-insert-signature), ce qui fait que certains clients de messagerie considéreront tout ce qui suit comme une signature, même les messages cités.

La solution proposée sur ce blog est de copier-coller la fonction et de remplacer en dur les deux tirets par des points. J’ai préféré insérer la signature, puis supprimer les tirets si on n’est pas entrain de composer un nouveau message.

Il faut donc rajouter dans :config de (use-package mu4e):

(setq mu4e-compose-signature-auto-include nil)

(defun message-insert-signature-at-point (pmode)
  "Function to insert signature at point."
  (when pmode (mu4e-compose-goto-top))
  (interactive)
  (require 'message)
  (message-goto-body)
  (save-restriction
    (narrow-to-region (point) (point))
    (message-insert-signature)
    (when (not (string= mu4e-compose-type "new"))
      (beginning-of-buffer)
      (replace-string "-- \n" "")
      ))
  (mu4e-compose-goto-top))
(add-hook 'mu4e-compose-mode-hook (lambda () (message-insert-signature-at-point nil)) t)
(add-hook 'mu4e-compose-pre-hook (lambda () (message-insert-signature-at-point t)) t)