summaryrefslogtreecommitdiffhomepage
path: root/email.org
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2021-11-11 22:20:11 +0000
committerjao <jao@gnu.org>2021-11-11 22:20:11 +0000
commit7e56699b153c601fc024d1e218ce589adfe9438e (patch)
treedf662eed3f38d2037f7974ccf504dc40dffe0630 /email.org
parentac8b1eb116ceec21c0875dbe7661ae9d90f4e3ad (diff)
downloadelibs-7e56699b153c601fc024d1e218ce589adfe9438e.tar.gz
elibs-7e56699b153c601fc024d1e218ce589adfe9438e.tar.bz2
white shuffling
Diffstat (limited to 'email.org')
-rw-r--r--email.org184
1 files changed, 89 insertions, 95 deletions
diff --git a/email.org b/email.org
index f02b605..4088dc1 100644
--- a/email.org
+++ b/email.org
@@ -1,7 +1,35 @@
#+property: header-args:emacs-lisp :lexical t :tangle yes :comments yes :results silent :shebang ";; -*- lexical-binding: t; -*-" :tangle-mode (identity #o644)
#+title: email handling (message mode, bbdb, gnus, notmuch)
-#+auto_tangle: t
+* gnus
+*** directories
+ #+begin_src emacs-lisp
+ (setq gnus-init-file "~/.emacs.d/gnus.el"
+ gnus-home-directory "~/.emacs.d/gnus"
+ gnus-directory gnus-home-directory
+ gnus-cache-directory (expand-file-name "cache" gnus-home-directory)
+ gnus-kill-files-directory (expand-file-name "News" gnus-home-directory)
+ message-directory (expand-file-name "Mail" gnus-home-directory)
+ mail-source-directory (expand-file-name "Mail" gnus-home-directory))
+
+ (when (eq jao-afio-mail-function 'gnus)
+ (let ((org-file (expand-file-name "gnus.org" jao-emacs-dir)))
+ (when (file-newer-than-file-p org-file gnus-init-file)
+ (org-babel-tangle-file org-file))))
+
+ #+end_src
+*** notifications
+ #+begin_src emacs-lisp
+ (defun jao-gnus-notify ()
+ (interactive)
+ (when (fboundp 'jao-gnus--notify)
+ (unless (derived-mode-p 'gnus-summary-mode
+ 'gnus-article-mode
+ 'gnus-group-mode)
+ (let ((inhibit-message t))
+ (gnus-demon-scan-news)
+ (gnus-group-expire-all-groups)))))
+ #+end_src
* message mode
*** Customization
#+begin_src emacs-lisp
@@ -10,7 +38,6 @@
(defvar jao-mails-regexp)
(setq jao-mails-regexp (regexp-opt jao-mails))
- (require 'message)
(setq message-send-mail-function 'message-send-mail-with-sendmail
message-sendmail-envelope-from 'header
message-sendmail-f-is-evil nil)
@@ -49,8 +76,7 @@
(setq message-expand-name-standard-ui t)
#+end_src
*** Encryption
- #+BEGIN_SRC emacs-lisp
- (require 'gnutls)
+ #+begin_src emacs-lisp
;; avoiding bogus warning
(setq gnutls-min-prime-bits nil)
(setq gnus-buttonized-mime-types
@@ -68,21 +94,18 @@
(setq smime-CA-directory "/etc/ssl/certs/"
smime-certificate-directory"/home/jao/.emacs.d/gnus/Mail/certs/")
- ;; Tells Gnus to inline the part
- (eval-after-load "mm-decode"
- '(add-to-list 'mm-inlined-types "application/pgp$"))
- ;; Tells Gnus how to display the part when it is requested
- (eval-after-load "mm-decode"
- '(add-to-list 'mm-inline-media-tests '("application/pgp$"
- mm-inline-text identity)))
- ;; Tell Gnus not to wait for a request, just display the thing
- ;; straight away.
- (eval-after-load "mm-decode"
- '(add-to-list 'mm-automatic-display "application/pgp$"))
- ;; But don't display the signatures, please.
- (eval-after-load "mm-decode"
- (quote (setq mm-automatic-display (remove "application/pgp-signature"
- mm-automatic-display))))
+ (with-eval-after-load "mm-decode"
+ ;; Tells Gnus to inline the part
+ (add-to-list 'mm-inlined-types "application/pgp$")
+ ;; Tells Gnus how to display the part when it is requested
+ (add-to-list 'mm-inline-media-tests '("application/pgp$"
+ mm-inline-text identity))
+ ;; Tell Gnus not to wait for a request, just display the thing
+ ;; straight away.
+ (add-to-list 'mm-automatic-display "application/pgp$")
+ ;; But don't display the signatures, please.
+ (setq mm-automatic-display (remove "application/pgp-signature"
+ mm-automatic-display)))
;; decide whether to encrypt or just sign outgoing messages
(defvar jao-message-try-sign nil)
@@ -102,14 +125,11 @@
(eval-after-load "rfc2047"
'(add-to-list 'rfc2047-header-encoding-alist
'("User-Agent" . address-mime)))
-
- ;; (define-key message-mode-map [f7] 'mml-secure-message-sign-pgp)
- (define-key message-mode-map [f8] 'mml-secure-message-encrypt-pgp)
- #+END_SRC
+ #+end_src
*** Attach image to message
Use ~C-c C-p~ in message-mode.
*** Check attachment
- #+BEGIN_SRC emacs-lisp
+ #+begin_src emacs-lisp
(defvar jao-message-attachment-regexp "\\([Ww]e send\\|[Ii] send\\|attach\\)")
(defun jao-message-check-attachment ()
"Check if there is an attachment in the message if I claim it."
@@ -121,7 +141,7 @@
(message-y-or-n-p
"No attachment. Send the message? " nil nil))
(error "No message sent")))))
- #+END_SRC
+ #+end_src
*** Check Fcc/Gcc
#+begin_src emacs-lisp
(defun jao-message-check-gcc ()
@@ -148,16 +168,17 @@
#+end_src
*** Randomsig
#+begin_src emacs-lisp
- (when (require 'randomsig nil t)
- (define-key message-mode-map (kbd "C-c s") 'randomsig-replace-sig)
- (define-key message-mode-map (kbd "C-c S") 'randomsig-select-sig)
- (setq randomsig-dir (expand-file-name "~/etc/config/emacs"))
- (setq randomsig-files '("signatures.txt"))
- ;; or (setq randomsig-files (randomsig-search-sigfiles))
- ;; or (setq randomsig-files 'randomsig-search-sigfiles)
- (setq message-signature 'randomsig-signature)
- (setq randomsig-delimiter-pattern "^%$"
- randomsig-delimiter "%"))
+ (with-eval-after-load "message"
+ (when (require 'randomsig nil t)
+ (define-key message-mode-map (kbd "C-c s") 'randomsig-replace-sig)
+ (define-key message-mode-map (kbd "C-c S") 'randomsig-select-sig)
+ (setq randomsig-dir (expand-file-name "~/etc/config/emacs"))
+ (setq randomsig-files '("signatures.txt"))
+ ;; or (setq randomsig-files (randomsig-search-sigfiles))
+ ;; or (setq randomsig-files 'randomsig-search-sigfiles)
+ (setq message-signature 'randomsig-signature)
+ (setq randomsig-delimiter-pattern "^%$"
+ randomsig-delimiter "%")))
#+end_src
*** Send mail hooks
#+begin_src emacs-lisp
@@ -169,12 +190,13 @@
#+end_src
*** Keybindings
#+begin_src emacs-lisp
- (define-key message-mode-map (kbd "C-c y") #'yank-media)
+ (with-eval-after-load "message"
+ ;; (define-key message-mode-map [f7] 'mml-secure-message-sign-pgp)
+ (define-key message-mode-map [f8] 'mml-secure-message-encrypt-pgp)
+ (define-key message-mode-map (kbd "C-c y") #'yank-media))
#+end_src
* sendmail/smtp
#+begin_src emacs-lisp
- (require 'smtpmail)
-
(defun jao-sendmail-gmail ()
(setq smtpmail-auth-supported '(login cram-md5 plain))
(setq smtpmail-smtp-server "smtp.gmail.com")
@@ -198,7 +220,6 @@
* mailcap
#+begin_src emacs-lisp
(use-package mailcap
-
:config
(add-to-list 'mailcap-mime-extensions '(".JPEG" . "image/jpeg"))
(add-to-list 'mailcap-mime-extensions '(".JPG" . "image/jpeg"))
@@ -277,11 +298,10 @@
(add-hook 'bbdb-after-change-hook (lambda (arg) (bbdb-save)))
(require 'bbdb-anniv) ;; BBDB 3.x this gets birthdays in org agenda
;; and diary - clever stuff
- (add-hook 'diary-list-entries-hook 'bbdb-anniv-diary-entries))
+ (add-hook 'diary-list-entries-hook 'bbdb-anniv-diary-entries)
- (require 'bbdb)
- (setq bbdb-file (expand-file-name "~/.emacs.d/bbdb"))
- (bbdb-initialize 'message 'pgp) ;; 'mail
+ (setq bbdb-file (expand-file-name "~/.emacs.d/bbdb"))
+ (bbdb-initialize 'message 'pgp 'gnus 'mail))
#+end_src
* mailboxes
#+begin_src emacs-lisp
@@ -334,60 +354,34 @@
(jao-consult-add-buffer-source 'jao-mail-consult-source "Mail" ?n)
#+end_src
-* gnus
-*** Directories
- #+begin_src emacs-lisp
- (setq gnus-init-file "~/.emacs.d/gnus.el"
- gnus-home-directory "~/.emacs.d/gnus"
- gnus-directory gnus-home-directory
- mail-source-directory (expand-file-name "Mail" gnus-home-directory))
-
- (when (eq jao-afio-mail-function 'gnus)
- (let ((org-file (expand-file-name "gnus.org" jao-emacs-dir)))
- (when (file-newer-than-file-p org-file gnus-init-file)
- (org-babel-tangle-file org-file))))
-
- #+end_src
-*** Notifications
- #+begin_src emacs-lisp
- (defun jao-gnus-notify ()
- (interactive)
- (when (fboundp 'jao-gnus--notify)
- (unless (derived-mode-p 'gnus-summary-mode
- 'gnus-article-mode
- 'gnus-group-mode)
- (let ((inhibit-message t))
- (gnus-demon-scan-news)
- (gnus-group-expire-all-groups)))))
- #+end_src
* notmuch
#+begin_src emacs-lisp
(when (eq jao-afio-mail-function 'notmuch)
(jao-load-org "notmuch"))
#+end_src
-*** consult
- #+begin_src emacs-lisp
- (jao-load-path "consult-notmuch")
- (require 'consult-notmuch)
- (consult-customize consult-notmuch :preview-key 'any)
-
- (defvar jao-consult-notmuch-history nil)
-
- (defun jao-consult-notmuch-folder (&optional tree folder)
- (interactive "P")
- (let* ((root "~/var/mail/")
- (folder (if folder
- (file-name-as-directory folder)
- (completing-read "Folder: "
- jao-mailbox-folders
- nil nil nil
- jao-consult-notmuch-history
- ".")))
- (folder (replace-regexp-in-string "/\\(.\\)" ".\\1" folder))
- (init (read-string "Initial query: "))
- (init (format "folder:/%s/ %s" folder init)))
- (if tree (consult-notmuch-tree init) (consult-notmuch init))))
-
- (with-eval-after-load "notmuch-hello"
- (define-key notmuch-hello-mode-map "f" #'jao-consult-notmuch-folder))
- #+end_src
+* consult notmuch
+ #+begin_src emacs-lisp
+ (jao-load-path "consult-notmuch")
+ (require 'consult-notmuch)
+ (consult-customize consult-notmuch :preview-key 'any)
+
+ (defvar jao-consult-notmuch-history nil)
+
+ (defun jao-consult-notmuch-folder (&optional tree folder)
+ (interactive "P")
+ (let* ((root "~/var/mail/")
+ (folder (if folder
+ (file-name-as-directory folder)
+ (completing-read "Folder: "
+ jao-mailbox-folders
+ nil nil nil
+ jao-consult-notmuch-history
+ ".")))
+ (folder (replace-regexp-in-string "/\\(.\\)" ".\\1" folder))
+ (init (read-string "Initial query: "))
+ (init (format "folder:/%s/ %s" folder init)))
+ (if tree (consult-notmuch-tree init) (consult-notmuch init))))
+
+ (with-eval-after-load "notmuch-hello"
+ (define-key notmuch-hello-mode-map "f" #'jao-consult-notmuch-folder))
+ #+end_src