From: Lars Magne Ingebrigtsen Date: Wed, 29 Jun 2011 20:21:29 +0000 (+0200) Subject: Add the new `sendmail-query-once' function to sendmail.el. X-Git-Tag: emacs-pretest-24.0.90~104^2~152^2~338 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2f31f37ab7cf4a29f9b5fbe68b5f18cad7db00ba;p=emacs.git Add the new `sendmail-query-once' function to sendmail.el. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7ed6073339d..62fbf813ce2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-06-29 Lars Magne Ingebrigtsen + + * mail/sendmail.el (sendmail-query-once): New function. + (sendmail-query-once-function): New variable. + 2011-06-29 Glenn Morris * files.el (auto-mode-alist): Add .f03, .f08 for f90-mode. diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index c1405ec5ff3..13da0627fff 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -164,6 +164,7 @@ that matches the variable `mail-header-separator'. This is used by the default mail-sending commands. See also `message-send-mail-function' for use with the Message package." :type '(radio (function-item sendmail-send-it :tag "Use Sendmail package") + (function-item sendmail-query-once :tag "Query the user") (function-item smtpmail-send-it :tag "Use SMTPmail package") (function-item feedmail-send-it :tag "Use Feedmail package") (function-item mailclient-send-it :tag "Use Mailclient package") @@ -171,6 +172,48 @@ This is used by the default mail-sending commands. See also :initialize 'custom-initialize-delay :group 'sendmail) +(defvar sendmail-query-once-function 'query + "Either a function to send email, or the symbol `query'.") + +(defun sendmail-query-once () + "Send an email via `sendmail-query-once-function'. +If `sendmail-query-once-function' is `query', ask the user what +function to use, and then save that choice." + (when (equal sendmail-query-once-function 'query) + (let ((default + (cond + ((or (and window-system (eq system-type 'darwin)) + (eq system-type 'windows-nt)) + 'mailclient-send-it) + ((and sendmail-program + (executable-find sendmail-program)) + 'sendmail-send-it)))) + (customize-save-variable + 'sendmail-query-once-function + (if (or (not default) + ;; We have detected no OS-level mail senders, or we + ;; have already configured smtpmail, so we use the + ;; internal SMTP service. + (and (boundp 'smtpmail-smtp-server) + smtpmail-smtp-server)) + 'smtpmail-send-it + ;; Query the user. + (unwind-protect + (progn + (pop-to-buffer "*Mail Help*") + (erase-buffer) + (insert "Sending mail from Emacs hasn't been set up yet.\n\n" + "Type `y' to configure outgoing SMTP, or `n' to use\n" + "the default mail sender on your system.\n\n" + "To change this again at a later date, customize the\n" + "`send-mail-function' variable.\n") + (goto-char (point-min)) + (if (y-or-n-p "Configure outgoing SMTP in Emacs? ") + 'smtpmail-send-it + default)) + (kill-buffer (current-buffer))))))) + (funcall sendmail-query-once-function)) + ;;;###autoload(custom-initialize-delay 'send-mail-function nil) ;;;###autoload