chiark / gitweb /
dot/gnus-local.el.distorted: Set `odin.gg' sender address if applicable.
authorMark Wooding <mdw@distorted.org.uk>
Fri, 24 Apr 2020 23:32:24 +0000 (00:32 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 24 Apr 2020 23:32:24 +0000 (00:32 +0100)
Gather an alist mapping mailbox names to `odin' local-parts and consult
it when building the sender address.

dot/gnus-local.el.distorted

index e7e7f52ac7fecfd70654f521606202c09d0626c3..7bfba60d166ef3e1a120f03e80421609c4a5aff9 100644 (file)
          "\\(" "$" "\\|" "\\s-" "\\)"))
 
 (defvar mdw-odin-splits nil)
+(defvar mdw-odin-sender-alist nil)
 
 (defun mdw-update-odin-info ()
-  (let ((splits nil))
+  (let ((splits nil) (senders nil))
     (with-temp-buffer
       (call-process "ssh" nil t nil
                    "stratocaster" "userv" "odin" "mail" "list")
                (tag (match-string 2)))
            (push `(to ,(format "%s@odin\\.gg" local-part)
                       ,(format "crap.%s" tag))
-                 splits)))
+                 splits)
+           (push (cons tag local-part) senders)))
        (forward-line)))
-    (setq mdw-odin-splits (nreverse splits))))
+    (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.
         (address (let* ((mailbox (substring gnus-newsgroup-name
                                             (match-end 0)))
                         (entry (assoc mailbox mdw-odin-sender-alist)))
-                   (concat "mdw-nospam-" mailbox "@distorted.org.uk"))))
+                   (if entry (concat (cdr entry) "@odin.gg")
+                     (concat "mdw-nospam-" mailbox "@distorted.org.uk")))))
        ("^nnimap\\+[^:]+-chiark:"
         ("X-mdw-Send-Mail" "chiark-smtp"))
        ("^nnimap\\+google:"