From 3c22af2bb8111803027cfc9716607f7333038502 Mon Sep 17 00:00:00 2001 From: Gour Date: Mon, 25 May 2015 08:28:56 +0200 Subject: [PATCH] mu4e-contrib: add some spam-handling functions Add some basic spam-handling functionality to mu4e-contrib --- mu4e/mu4e-contrib.el | 45 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/mu4e/mu4e-contrib.el b/mu4e/mu4e-contrib.el index d84d943c..8d930903 100644 --- a/mu4e/mu4e-contrib.el +++ b/mu4e/mu4e-contrib.el @@ -107,7 +107,50 @@ BOOKMARK is a bookmark name or a bookmark record." (run-with-timer 0.1 nil (lambda (bmk) (bookmark-default-handler - `("" (buffer . ,(current-buffer)) . ,(bookmark-get-bookmark-record bmk)))) + `("" (buffer . ,(current-buffer)) . + ,(bookmark-get-bookmark-record bmk)))) bookmark)))) + + +;;; handling spam with Bogofilter with possibility to define it for SpamAssassin +;;; contributed by Gour + +;; to add the actions to the menu, you can use something like: + +;; (add-to-list 'mu4e-headers-actions +;; '("sMark as spam" . mu4e-register-msg-as-spam) t) +;; (add-to-list 'mu4e-headers-actions +;; '("hMark as ham" . mu4e-register-msg-as-ham) t) +;; (add-to-list 'mu4e-headers-actions +;; '("aMark unsure as spam" . mu4e-mark-unsure-as-spam) t) +;; (add-to-list 'mu4e-headers-actions +;; '("bMark unsure as ham" . mu4e-mark-unsure-as-ham) t) + +(defvar mu4e-register-as-spam-cmd nil + "Command for invoking spam processor to register message as spam, +for example for bogofilter, use \"/usr/bin/bogofilter -Ns < %s\" ") + +(defvar mu4e-register-as-ham-cmd nil + "Command for invoking spam processor to register message as ham. +For example for bogofile, use \"/usr/bin/bogofilter -Sn < %s\"") + +(defun mu4e-register-msg-as-spam (msg) + "Mark message as spam." + (interactive) + (let* ((path (shell-quote-argument (mu4e-message-field msg :path))) + (command (format mu4e-register-as-spam-cmd path))) ;; re-register msg as spam + (shell-command command)) +(mu4e-mark-at-point 'delete nil)) + +(defun mu4e-register-msg-as-ham (msg) + "Mark message as ham." + (interactive) + (let* ((path (shell-quote-argument(mu4e-message-field msg :path))) + (command (format mu4e-register-as-ham-cmd path))) ;; re-register msg as ham + (shell-command command)) +(mu4e-mark-at-point 'something nil)) + +;;; end of spam-filtering functions + (provide 'mu4e-contrib)