]> code.delx.au - gnu-emacs-elpa/blobdiff - smtpmail-async.el
Update pkg file.
[gnu-emacs-elpa] / smtpmail-async.el
index d01b4067aae8733737584766e80131f0b8b582a2..6fcf287f459bf4896b757d412caaea58fff7190b 100644 (file)
@@ -1,10 +1,10 @@
-;;; smtpmail-async --- Send e-mail with smtpmail.el asynchronously
+;;; smtpmail-async.el --- Send e-mail with smtpmail.el asynchronously -*- lexical-binding: t -*-
 
-;; Copyright (C) 2012~2014 John Wiegley
+;; Copyright (C) 2012-2016 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <jwiegley@gmail.com>
 ;; Created: 18 Jun 2012
-;; Version: 1.0
+
 ;; Keywords: email async
 ;; X-URL: https://github.com/jwiegley/emacs-async
 
 ;;
 ;; This assumes you already have smtpmail.el working.
 
+;;; Code:
+
 (defgroup smtpmail-async nil
   "Send e-mail with smtpmail.el asynchronously"
   :group 'smptmail)
 
 (require 'async)
 (require 'smtpmail)
+(require 'message)
+
+(defvar async-smtpmail-before-send-hook nil
+  "Hook running in the child emacs in `async-smtpmail-send-it'.
+It is called just before calling `smtpmail-send-it'.")
 
 (defun async-smtpmail-send-it ()
   (let ((to          (message-field-value "To"))
           (set-buffer-multibyte nil)
           ;; Pass in the variable environment for smtpmail
           ,(async-inject-variables
-            "\\`\\(smtpmail\\|\\(user-\\)?mail\\)-"
+            "\\`\\(smtpmail\\|async-smtpmail\\|\\(user-\\)?mail\\)-\\|auth-sources\\|epg"
             nil "\\`\\(mail-header-format-function\\|smtpmail-address-buffer\\|mail-mode-abbrev-table\\)")
-          (catch 'done
-            (smtpmail-send-it))))
-     `(lambda (&optional ignore)
-        (message "Delivering message to %s...done" ,to)))))
+          (run-hooks 'async-smtpmail-before-send-hook)
+          (smtpmail-send-it)))
+     (lambda (&optional _ignore)
+       (message "Delivering message to %s...done" to)))))
 
 (provide 'smtpmail-async)