summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbenj <benj@rse8.com>2024-04-14 00:45:20 -0700
committerbenj <benj@rse8.com>2024-04-14 00:45:20 -0700
commitcdf3f799fd5cdb34d4dc760dccfa354d7b266785 (patch)
treeedcbc78d26e7ea987a8f9b46a56af61ce5de2d19
parentabcf93b701ffe073b72861f55d4578cbe8fd9bfb (diff)
downloademacs-cdf3f799fd5cdb34d4dc760dccfa354d7b266785.tar
emacs-cdf3f799fd5cdb34d4dc760dccfa354d7b266785.tar.gz
emacs-cdf3f799fd5cdb34d4dc760dccfa354d7b266785.tar.bz2
emacs-cdf3f799fd5cdb34d4dc760dccfa354d7b266785.tar.lz
emacs-cdf3f799fd5cdb34d4dc760dccfa354d7b266785.tar.xz
emacs-cdf3f799fd5cdb34d4dc760dccfa354d7b266785.tar.zst
emacs-cdf3f799fd5cdb34d4dc760dccfa354d7b266785.zip
add smtp accounts which depend on password-store for configuration
-rw-r--r--init.el51
1 files changed, 44 insertions, 7 deletions
diff --git a/init.el b/init.el
index b1c6b1f..0da943e 100644
--- a/init.el
+++ b/init.el
@@ -210,6 +210,34 @@
:init
(marginalia-mode))
+(use-package message
+ :after smtpmail-multi
+ :init
+ (defun get-mail-accounts ()
+ (let* ((raw-keys (auth-source-pass-get 'secret "emacs/mail-accounts"))
+ (keys (if (null raw-keys) nil (mapcar 'intern (split-string raw-keys)))))
+ (if (null keys)
+ (message "No mail accounts were found in the password-store. Cannot send mail")
+ (mapcar (lambda (x)
+ (let ((store-name (auth-source-pass-get (symbol-name x) "emacs/mail-accounts")))
+ (cons x (list
+ ;; see smtpmail-multi.el for ordering
+ (auth-source-pass-get "user" store-name) ;; username
+ (auth-source-pass-get "host" store-name) ;; server
+ (string-to-number (auth-source-pass-get "port" store-name)) ;; port
+ (auth-source-pass-get "user" store-name) ;; from
+ (intern (auth-source-pass-get "type" store-name)) ;; stream type
+ nil nil nil)))) ;; starttls_key starttls_cert local_host
+ keys))))
+
+ (setq send-mail-function 'smtpmail-multi-send-it
+ mail-accounts (get-mail-accounts)
+ primary-account (nth 0 (car mail-accounts))
+
+ smtpmail-multi-accounts mail-accounts
+ smtpmail-multi-default-account primary-account
+ user-mail-address (nth 3 (cdr (assoc primary-account smtpmail-multi-accounts)))))
+
(use-package multiple-cursors
:ensure t
:init
@@ -217,12 +245,12 @@
:bind (:prefix-map mc-commands
:prefix-docstring "Multiple cursors quick commands"
:prefix "C-c m"
- ("i" . 'mc/insert-numbers)
- ("l" . 'mc/edit-lines)
- ("m" . 'mc/mark-all-like-this)
- ("n" . 'mc/mark-next-like-this)
- ("p" . 'mc/mark-previous-like-this)
- ("r r" . 'mc/mark-all-in-region-regexp)))
+ ("i" . 'mc/insert-numbers)
+ ("l" . 'mc/edit-lines)
+ ("m" . 'mc/mark-all-like-this)
+ ("n" . 'mc/mark-next-like-this)
+ ("p" . 'mc/mark-previous-like-this)
+ ("r r" . 'mc/mark-all-in-region-regexp)))
(use-package nerd-icons
:ensure t
@@ -339,6 +367,9 @@
:ensure t
:after ox)
+(use-package pass
+ :ensure t)
+
(use-package paredit
:ensure t
:hook
@@ -346,7 +377,10 @@
(emacs-lisp-mode . paredit-mode))
(use-package password-store
- :ensure t)
+ :ensure t
+ :config
+ ;; don't append, since we /only/ want password-store based credentials
+ (setq auth-sources '(password-store)))
(use-package pest-mode
:ensure t)
@@ -367,6 +401,9 @@
(use-package rustic
:ensure t)
+(use-package smtpmail-multi
+ :ensure t)
+
(use-package treemacs
:ensure t
:bind (:prefix-map treemacs-commands