;;; bundle--email (setq mml-default-sign-method "pgpmime" mml-default-encrypt-method "pgpmime" mml-secure-openpgp-sign-with-sender t mail-user-agent 'message-user-agent compose-mail-user-agent-warnings nil) (defun mk/sign-email () ;; Sign an Email using the key of the sender. (interactive) (mml-secure-message-sign-pgpmime)) (defun mk/encrypt-email () ;; Encrypt an Email using the key of the recipient. (interactive) (mml-secure-message-encrypt-pgpmime)) (defvar mk/gps-location (eval '(let ((float-output-format "%.1f")) (format "%s%s, %s%s" (if (numberp calendar-latitude) (abs calendar-latitude) (+ (aref calendar-latitude 0) (/ (aref calendar-latitude 1) 60.0))) (if (numberp calendar-latitude) (if (> calendar-latitude 0) "N" "S") (if (eq (aref calendar-latitude 2) 'north) "N" "S")) (if (numberp calendar-longitude) (abs calendar-longitude) (+ (aref calendar-longitude 0) (/ (aref calendar-longitude 1) 60.0))) (if (numberp calendar-longitude) (if (> calendar-longitude 0) "E" "W") (if (eq (aref calendar-longitude 2) 'east) "E" "W")))))) (defvar mk/signature-name (concat "Cheers, " user-full-name " (" calendar-location-name ", " mk/gps-location ")\n")) (defvar mk/signature-gpg "GnuPG Key: https://meta.sr.ht/~marcuskammer.pgp\nFingerprint: 86DB 0F30 F9F1 661A 54E2 1664 C374 817B E285 268F") (defun mk/signature-time () (format-time-string "Written on: %a, %d %b %Y %R %z\n")) (defun mk/signature () (concat ;mk/signature-name ;(mk/signature-time) mk/signature-gpg)) (use-package smtpmail :custom (smtpmail-smtp-server "smtp.mailbox.org") (smtpmail-smtp-service 465) (smtpmail-stream-type 'ssl) (smtpmail-auth-credentials (expand-file-name "~/.authinfo.gpg"))) (add-hook 'message-signature-setup-hook (lambda () (setf message-signature (mk/signature)))) ;; (add-hook 'mail-send-hook #'ispell-message) ;; (add-hook 'message-send-hook #'ispell-message) (add-hook 'message-mode-hook 'turn-on-auto-fill) (setq message-directory "~/Maildir") (setq message-auto-save-directory "~/Maildir/Drafts") (setq message-send-mail-function 'smtpmail-send-it) (use-package gnus :custom (gnus-use-full-window nil) (gnus-summary-line-format "%O%U%R%z%d %B%(%[%4L: %-22,22f%]%) %s\n") (gnus-summary-mode-line-format "Gnus: %p [%A / Sc:%4z] %Z") (gnus-summary-same-subject "") (gnus-summary-make-false-root 'adopt) (gnus-summary-make-false-root-always nil) (gnus-sum-thread-tree-indent " ") (gnus-sum-thread-tree-root "* ") (gnus-sum-thread-tree-false-root "") (gnus-sum-thread-tree-single-indent "") (gnus-sum-thread-tree-leaf-with-other "+-+> ") (gnus-sum-thread-tree-vertical "|") (gnus-sum-thread-tree-single-leaf "=--> ") (gnus-thread-sort-functions '(gnus-thread-sort-by-subject gnus-thread-sort-by-most-recent-date)) (gnus-large-newsgroup nil) (gnus-inhibit-startup-message t) (gnus-check-new-newsgroups nil) (gnus-select-method '(nnnil "")) (gnus-secondary-select-methods '((nntp "news.eternal-september.org" (nntp-open-connection-function nntp-open-ssl-stream) (nntp-port-number 563) (nntp-authinfo-file "~/.authinfo.gpg")) (nnimap "mailbox" (nnimap-address "imap.mailbox.org") (nnimap-inbox "INBOX") (nnimap-server-port 993) (nnimap-stream ssl) (nnimap-authinfo-file "~/.authinfo.gpg")))) :config (add-hook 'gnus-summary-prepare-hook 'gnus-summary-sort-by-most-recent-date)) (when (eq system-type 'gnu/linux) (let ((mu4e-dir (expand-file-name "/usr/share/emacs/site-lisp/mu4e/"))) (when (file-directory-p mu4e-dir) (add-to-list 'load-path mu4e-dir) (use-package mu4e :ensure nil :hook (mu4e-compose-pre . (lambda () (setf mu4e-compose-signature (mk/signature)))) :custom (mu4e-confirm-quit nil) (mu4e-change-filenames-when-moving t) (mu4e-drafts-folder "/Drafts") (mu4e-get-mail-command "mbsync -a") (mu4e-headers-date-format "%Y-%m-%d %H:%M") (mu4e-refile-folder "/Archive") (mu4e-sent-folder "/Sent") (mu4e-trash-folder "/Trash") (mu4e-split-view 'horizontal) (mu4e-update-interval (* 10 60))))))