X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/f8d935ae18ed8356e02d5e30520a8f72f6472b54..8142c84910c50381c6c25caff486ed08859ba01d:/dot/gnus-local.el.distorted diff --git a/dot/gnus-local.el.distorted b/dot/gnus-local.el.distorted index a6cf56d..7bfba60 100644 --- a/dot/gnus-local.el.distorted +++ b/dot/gnus-local.el.distorted @@ -72,18 +72,6 @@ (setq message-alternative-emails bbdb-user-mail-names message-dont-reply-to-names message-alternative-emails) -;; Mail sent to `mdw-nospam-THING' should appear to come from this address. -(setq gnus-posting-styles - '(("^nnimap\\+distorted:crap\\." - (address (concat "mdw-nospam-" - (substring gnus-newsgroup-name (match-end 0)) - "@distorted.org.uk"))) - ("^nnimap\\+[^:]+-chiark:" - ("X-mdw-Send-Mail" "chiark-smtp")) - ("^nnimap\\+google:" - (address "distorted.mdw@gmail.com") - ("X-mdw-Send-Mail" "gmail-smtp")))) - ;; Augment Gnus's built-in header-list abbreviations. (require 'nnmail) (setq nnmail-split-abbrev-alist @@ -104,8 +92,11 @@ "=" "\\(" "\\S-+" "\\)" ; mailbox tag "\\(" "$" "\\|" "\\s-" "\\)")) -(defun mdw-odin-splits () - (let ((list nil)) +(defvar mdw-odin-splits nil) +(defvar mdw-odin-sender-alist nil) + +(defun mdw-update-odin-info () + (let ((splits nil) (senders nil)) (with-temp-buffer (call-process "ssh" nil t nil "stratocaster" "userv" "odin" "mail" "list") @@ -116,9 +107,26 @@ (tag (match-string 2))) (push `(to ,(format "%s@odin\\.gg" local-part) ,(format "crap.%s" tag)) - list))) + splits) + (push (cons tag local-part) senders))) (forward-line))) - (nreverse list))) + (setq mdw-odin-splits (nreverse splits) + mdw-odin-sender-alist (nreverse senders)))) +(mdw-update-odin-info) + +;; Mail sent to `mdw-nospam-THING' should appear to come from this address. +(setq gnus-posting-styles + '(("^nnimap\\+distorted:crap\\." + (address (let* ((mailbox (substring gnus-newsgroup-name + (match-end 0))) + (entry (assoc mailbox mdw-odin-sender-alist))) + (if entry (concat (cdr entry) "@odin.gg") + (concat "mdw-nospam-" mailbox "@distorted.org.uk"))))) + ("^nnimap\\+[^:]+-chiark:" + ("X-mdw-Send-Mail" "chiark-smtp")) + ("^nnimap\\+google:" + (address "distorted.mdw@gmail.com") + ("X-mdw-Send-Mail" "gmail-smtp")))) ;; The actual splitting rules. (setq nnmail-split-fancy @@ -168,7 +176,7 @@ (to "\\