Index: message.el =================================================================== RCS file: /cvsroot/emacs/emacs/lisp/gnus/message.el,v retrieving revision 1.102 diff -u -r1.102 message.el --- message.el 24 Feb 2006 05:02:12 -0000 1.102 +++ message.el 16 Mar 2006 21:09:33 -0000 @@ -48,6 +48,7 @@ (require 'mml) (require 'rfc822) (eval-and-compile + (autoload 'mailclient-send-it "mailclient") ;; Emacs 22 or contrib/ (autoload 'gnus-find-method-for-group "gnus") (autoload 'nnvirtual-find-group-art "nnvirtual") (autoload 'gnus-group-decoded-name "gnus-group")) @@ -584,16 +585,37 @@ :link '(custom-manual "(message)Canceling News") :type 'string) +(defun message-send-mail-function () + "Return suitable value for the variable `message-send-mail-function'." + (cond ((and sendmail-program + (executable-find program)) + 'message-send-mail-with-sendmail) + ((and (locate-library "mailclient") + window-system + (memq system-type '(darwin windows-nt))) + 'message-send-mail-with-mailclient) + (t + 'message-smtpmail-send-it))) + +;; Prevent problems with `window-system' not having the correct value +;; when loaddefs.el is loaded. `custom-reevaluate-setting' needs the +;; standard value. +;;;###autoload +(put 'message-send-mail-function 'standard-value + '((message-send-mail-function))) + ;; Useful to set in site-init.el ;;;###autoload -(defcustom message-send-mail-function 'message-send-mail-with-sendmail +(defcustom message-send-mail-function (message-send-mail-function) "Function to call to send the current buffer as mail. The headers should be delimited by a line whose contents match the variable `mail-header-separator'. -Valid values include `message-send-mail-with-sendmail' (the default), +Valid values include `message-send-mail-with-sendmail', `message-send-mail-with-mh', `message-send-mail-with-qmail', -`message-smtpmail-send-it', `smtpmail-send-it' and `feedmail-send-it'. +`message-smtpmail-send-it', `smtpmail-send-it', +`feedmail-send-it' and `message-send-mail-with-mailclient'. The +default is system dependent. See also `send-mail-function'." :type '(radio (function-item message-send-mail-with-sendmail) @@ -602,8 +624,11 @@ (function-item message-smtpmail-send-it) (function-item smtpmail-send-it) (function-item feedmail-send-it) + (function-item message-send-mail-with-mailclient + :tag "Use Mailclient package") (function :tag "Other")) :group 'message-sending + :initialize 'custom-initialize-default :link '(custom-manual "(message)Mail Variables") :group 'message-mail) @@ -3982,6 +4007,13 @@ (run-hooks 'message-send-mail-hook) (smtpmail-send-it)) +(defun message-send-mail-with-mailclient () + "Send the prepared message buffer with `mailclient-send-it'. +This only differs from `smtpmail-send-it' that this command evaluates +`message-send-mail-hook' just before sending a message." + (run-hooks 'message-send-mail-hook) + (mailclient-send-it)) + (defun message-canlock-generate () "Return a string that is non-trivial to guess. Do not use this for anything important, it is cryptographically weak."