migrate from msmtp (external) to emacs's own smtpmail
[~bandali/configs] / .emacs.d / lisp / bandali-gnus.el
index fdb1e7a..d26e4f9 100644 (file)
@@ -1,6 +1,6 @@
 ;;; bandali-gnus.el --- bandali's Gnus setup         -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2018-2020  Amin Bandali
+;; Copyright (C) 2018-2021  Amin Bandali
 
 ;; Author: Amin Bandali <bandali@gnu.org>
 ;; Keywords: mail, news
                                 ;; catch-all
                                 "INBOX")))
    (nnimap "sfl"
-           (nnimap-stream tls)
-           (nnimap-address "mail.savoirfairelinux.com")
-           (nnimap-user "amin.bandali")))
+           (nnimap-stream plain)
+           (nnimap-address "127.0.0.1")
+           (nnimap-server-port 143)
+           (nnimap-authenticator plain)
+           (nnimap-user "amin.bandali@savoirfairelinux.local")))
  gnus-message-archive-group "nnimap+gnu:INBOX"
  gnus-parameters
  '(("l\\.deepspec"
    ("nnimap\\+uwaterloo:.*"
     (gcc-self . t)))
  ;; nnimap-record-commands t
- gnus-large-newsgroup  50
;; gnus-large-newsgroup  50
  gnus-home-directory   (b/var "gnus/")
  gnus-directory        (concat gnus-home-directory "news/")
  message-directory     (concat gnus-home-directory "mail/")
                      (match-string 0 combined-lapsed))))
       (concat local lapsed))))
   ;; local key bindings
+  (declare-function org-store-link "ol" (arg &optional interactive?))
   (define-key gnus-article-mode-map (kbd "M-L") #'org-store-link))
 
 (with-eval-after-load 'gnus-sum
                                       gnus-thread-sort-by-date))
   ;; local key bindings
   (define-key gnus-summary-mode-map (kbd "M-L") #'org-store-link)
+  (define-key gnus-summary-mode-map (kbd "r")
+    #'gnus-summary-reply-with-original)
+  (define-key gnus-summary-mode-map (kbd "R")
+    #'gnus-summary-wide-reply-with-original)
   (defvar b/gnus-summary-prefix-map)
   (define-prefix-command 'b/gnus-summary-prefix-map)
   (define-key gnus-summary-mode-map (kbd "v")
@@ -273,7 +280,8 @@ jami:bandali")
    gnus-message-replysign t
    gnus-posting-styles
    '((".*"
-      (address "bandali@gnu.org"))
+      (address "bandali@gnu.org")
+      ("X-Message-SMTP-Method" "smtp fencepost.gnu.org 587"))
      ("nnimap\\+gnu:l\\..*"
       (signature nil))
      ((header "subject" "ThankCRM")
@@ -282,26 +290,29 @@ jami:bandali")
       (eval (setq b/message-cite-say-hi nil)))
      ("nnimap\\+shemshak:.*"
       (address "amin@shemshak.org")
+      ("X-Message-SMTP-Method" "smtp mail.shemshak.org 587")
       (body "\nBest,\n")
       (signature b/shemshak-signature)
       (gcc "nnimap+shemshak:Sent")
       (eval (setq b/message-cite-say-hi t)))
      ("nnimap\\+uwaterloo:.*"
       (address "bandali@uwaterloo.ca")
+      ("X-Message-SMTP-Method" "smtp connect.uwaterloo.ca 587")
       (body "\nBest,\n")
       (signature b/uwaterloo-signature))
      ("nnimap\\+uwaterloo:INBOX"
       (gcc "\"nnimap+uwaterloo:Sent Items\""))
      ("nnimap\\+csc:.*"
       (address "bandali@csclub.uwaterloo.ca")
+      ("X-Message-SMTP-Method" "smtp mail.csclub.uwaterloo.ca 587")
       (signature b/csc-signature)
       (gcc "nnimap+csc:Sent"))
      ("nnimap\\+sfl:.*"
       (address "amin.bandali@savoirfairelinux.com")
       (signature b/sfl-signature)
+      ("X-Message-SMTP-Method" "smtp mail.savoirfairelinux.com 587")
       (gcc "nnimap+sfl:Sent")
-      ;; (eval (setq-local b/sfl-p t))
-      ))))
+      (eval (setq-local b/sfl-p t))))))
 ;; hooks
 ;; (with-eval-after-load 'gnus
 ;;   (add-hook 'gnus-message-setup-hook
@@ -311,7 +322,16 @@ jami:bandali")
 ;;                 (mml-secure-message-sign)))))
 
 (with-eval-after-load 'gnus-topic
-  (csetq gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n"))
+  (csetq
+   gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n"
+   gnus-topic-topology '(("Gnus" visible nil nil)
+                         (("misc" visible nil nil))
+                         (("sfl" visible nil nil))
+                         (("csc" visible nil nil))
+                         (("uwaterloo" visible nil nil))
+                         (("shemshak" visible nil nil))
+                         (("gnu" visible nil nil))
+                         (("old-gnu" visible nil nil)))))
 
 (with-eval-after-load 'gnus-agent
   (csetq gnus-agent-synchronize-flags 'ask))
@@ -319,9 +339,8 @@ jami:bandali")
 (with-eval-after-load 'gnus-group
   (csetq gnus-permanently-visible-groups "\\(:INBOX$\\|:gnu$\\)"))
 
-;; problematic with ebdb's popup, *EBDB-Gnus*
-;; (with-eval-after-load 'gnus-win
-;;   (csetq gnus-use-full-window nil))
+(with-eval-after-load 'gnus-win
+  (csetq gnus-use-full-window nil))
 
 (with-eval-after-load 'gnus-dired
   (add-hook 'dired-mode-hook 'gnus-dired-mode))