X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/093f5ffa86eb0953d8e8fd3a7a27db71e4f9ee67..0630988acc7864483d8f6ed96f0ff1971ddb4db6:/dot/gnus-local.el.distorted diff --git a/dot/gnus-local.el.distorted b/dot/gnus-local.el.distorted index cbb9c26..5967b7b 100644 --- a/dot/gnus-local.el.distorted +++ b/dot/gnus-local.el.distorted @@ -5,22 +5,13 @@ ;;; (c) 2014 Mark Wooding ;;; -;;;-------------------------------------------------------------------------- -;;; Random configuration. - -(setq auth-sources '("~/.gnus.authinfo")) - -(remove-hook 'gnus-mark-article-hook - 'gnus-summary-mark-read-and-unread-as-read) -(add-hook 'gnus-mark-article-hook 'gnus-summary-mark-unread-as-read) - -(setq gnus-level-unsubscribed 6) +(setq auth-sources '("~/.authinfo.gpg")) ;;;-------------------------------------------------------------------------- ;;; How to send mail. (setq smtpmail-smtp-service 587 - smtpmail-auth-credentials "~/.gnus.authinfo") + smtpmail-auth-credentials "~/.authinfo.gpg") (setq mdw-send-mail-alist `((distorted-smtp @@ -45,7 +36,7 @@ "\\|" "evade\\.org\\.uk" "\\|" "fyvzl\\.net" "\\)$") . chiark-smtp) - ("@g\\(\\|oogle\\)mail\\.com$" . gmail-smtp)) + ("@g\\(oogle\\)?mail\\.com$" . gmail-smtp)) mdw-default-send-mail-method nil) ;;;-------------------------------------------------------------------------- @@ -73,24 +64,26 @@ (setq gnus-auto-expirable-newsgroups (concat "^" "\\(nnimap\\+[^:]+\\|nnvirtual\\):" - "\\(admin\\|crap\\|lists\\|nag\\|spam\\)\\.")) + "\\(" "\\(admin\\|crap\\|lists\\|nag\\)\\." + "\\|" "spam\\.oubliette" + "\\)")) ;; My various email addresses. (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 + (mdw-uniquify-alist + `((to . ,(concat "to\\|cc\\|apparently-to\\|envelope-to\\|" + "resent-to\\|resent-cc")) + (any . ,(concat "from\\|sender\\|resent-from\\|" + "to\\|cc\\|apparently-to\\|envelope-to\\|" + "resent-to\\|resent-cc")) + ,@nnmail-split-abbrev-alist))) +;; Find out about my `odin.gg' mappings. (defvar mdw-odin-parse-regexp (concat "^" "\\S-+" "\\s-+" ; time limit @@ -99,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") @@ -111,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 @@ -133,14 +146,29 @@ (from "darchive@.*\\.distorted\\.org\\.uk" "admin.misc") (from "support@aa\\.net\\.uk" "admin.aaisp") (from "bugs@distorted\\.org\\.uk" "admin.bugs") + (from "darchive@distorted\\.org\\.uk" "admin.darchive") - ;; Colo provider. + ;; Colo and network provider. (from "\\(accounts\\|support\\)@jump\\.net\\.uk" "keep.colo") + (from "\\(accounts\\|support\\)@aa\\.net\\.uk" "keep.aaisp") ;; Mailing lists, not split out earlier. (to "python-list@python\\.org" "lists.python") - (to "\\(jump-\\(announce\\|discuss\\)\\)@\\(lists\\.\\)jump\\.net\\.uk" - "lists.jump-\\1") + (to ,(concat "\\(jump-\\(announce\\|discuss\\)\\)@" + "\\(lists\\.\\)?" "jump\\.net\\.uk") + "lists.\\1") + (to "cambridgecryptowhiskyclub@gmail\\.com" + "lists.cambridge-crypto-whisky") + (from ,(concat "@" "\\(" "liberty-human-rights" + "\\|" "libertyhumanrights" + "\\|" "libertymail" + "\\)" "\\.org\\.uk" "\\>") + "lists.liberty" t) + (from "@openrightsgroup\\.org\\>" "lists.org" t) + (from "@warwick\\.ac\\.uk\\>" "lists.warwick-uni" t) + (to "chiark-\\(motd\\|announce\\)@chiark\\.greenend\\.org\\.uk" + "lists.chiark-announce") + (any "clive-cambridge-gamers@nsict\\.org" "lists.nsict-games") ;; Per-sender addresses. (to "\\" "spam.lovefilm" t) - (from "@\\(\\|.*\\.\\)amazon\\." "spam.amazon" t) - (from "@cineworldmail\\.com\\>" "spam.cineworld" t) - (from "@picturehouses\\.co\\.uk\\>" "spam.picturehouse" t) - (from "@nationwide" "spam.nationwide\\>" t) - (from "@news\\.spotifymail\\.com\\>" "spam.spotify" t) - (from "@action\\.openrightsgroup\\.org\\>" "spam.org" t) - (from "unlimited@cineworld\\.com\\>" "spam.cineworld" t) - (from "nationwide@securesuiteemail\\.com\\>" "spam.nationwide" t) - (from "@liberty-human-rights\\.org\\.uk\\>" "spam.liberty" t) - (from "@libertymail\\.org\\.uk\\>" "spam.liberty" t) - (from "@openrightsgroup\\.org\\>" "spam.org" t) - (from "@tshirthell\\.com\\>" "spam.tshirt-hell" t) + (from "@\\(.*\\.\\)?lovefilm\\.com\\>" "crap.lovefilm" t) + (from "@\\(.*\\.\\)?amazon\\." "crap.amazon" t) + (from "@cineworldmail\\.com\\>" "crap.cineworld" t) + (from "@picturehouses\\.co\\.uk\\>" "crap.picturehouse" t) + (from "@nationwide" "crap.nationwide" t) + (from "nationwide@securesuiteemail\\.com\\>" "crap.nationwide" t) + (from "@\\(.*\\.\\)?spotify\\(mail\\)?\\.com\\>" "crap.spotify" t) + (from "@action\\.openrightsgroup\\.org\\>" "crap.org" t) + (from "unlimited@cineworld\\.com\\>" "crap.cineworld" t) + (from "@tshirthell\\.com\\>" "crap.tshirt-hell" t) (from "campaigns@jolla\\.com\\>" "crap.jolla" t) + (from "@thomann\\.de\\>" "crap.thomann" t) + (from "@wikimedia\\.org\\>" "crap.wikimedia" t) + (from "@\\(.*\\.\\)?gandi\\.net\\>" "crap.gandi" t) + (from "@mythic-beasts\\.com\\>" "crap.mythic-beasts" t) + (from "@accounts\\.google\\.com\\>" "crap.google" t) ;; Default. "mail.misc")) @@ -184,6 +214,7 @@ (setq gnus-secondary-select-methods `((nnimap "distorted" (nnimap-address "mail.distorted.org.uk") + (nnimap-user "mdw") (nnimap-stream starttls) (nnimap-inbox ("INBOX" "to.split")) (nnimap-split-methods nnimap-split-fancy) @@ -191,6 +222,15 @@ (nnimap-unsplittable-articles (%Deleted))) (nnimap "markw-distorted" (nnimap-address "mail.distorted.org.uk") + (nnimap-user "markw") + (nnimap-stream starttls) + (nnimap-inbox ("INBOX" "to.split")) + (nnimap-split-methods nnimap-split-fancy) + (nnimap-split-fancy ,nnmail-split-fancy) + (nnimap-unsplittable-articles (%Deleted))) + (nnimap "mdw-chiark" + (nnimap-address "imap.dovecot.chiark.greenend.org.uk") + (nnimap-user "mdw") (nnimap-stream starttls) (nnimap-inbox ("INBOX" "to.split")) (nnimap-split-methods nnimap-split-fancy) @@ -198,13 +238,18 @@ (nnimap-unsplittable-articles (%Deleted))) (nnimap "mwooding-chiark" (nnimap-address "imap.dovecot.chiark.greenend.org.uk") + (nnimap-user "mwooding") (nnimap-stream starttls) - (nnimap-inbox "INBOX") + (nnimap-inbox ("INBOX" "to.split")) + (nnimap-split-methods nnimap-split-fancy) + (nnimap-split-fancy ,nnmail-split-fancy) (nnimap-unsplittable-articles (%Deleted))) (nnimap "google" (nnimap-address "imap.gmail.com") (nnimap-stream tls) - (nnimap-inbox "INBOX") + (nnimap-inbox ("INBOX" "to.split")) + (nnimap-split-methods nnimap-split-fancy) + (nnimap-split-fancy ,nnmail-split-fancy) (nnimap-unsplittable-articles (%Deleted))))) ;; Send sent mail back to me.