;; I'm not sure smtpmail.el is careful about the following
;; return value, but it also uses it internally, so I will fear
;; no evil.
- (require 'smtp)
- (if (not (smtp-via-smtp user-mail-address addr-listoid prepped))
+
+ ;; There exists a better SMTP handling program which provides
+ ;; `smtp'. If we have it, use it.
+ (or (require 'smtp nil t) (require 'smtpmail))
+ (if (not (if (featurep 'smtp)
+ (smtp-via-smtp user-mail-address addr-listoid prepped)
+ (smtpmail-via-smtp addr-listoid prepped)))
(progn
(set-buffer errors-to)
(insert "Send via smtpmail failed. Probable SMTP protocol error.\n")
(insert "Look for details below or in the *Messages* buffer.\n\n")
(let ((case-fold-search t)
;; don't be overconfident about the name of the trace buffer
- (tracer (concat "trace.*smtp.*" (regexp-quote smtp-server))))
+ (tracer (concat "trace.*smtp.*" (regexp-quote
+ (if (featurep 'smtp)
+ smtp-server
+ smtpmail-smtp-server)))))
(mapcar
'(lambda (buffy)
(if (string-match tracer (buffer-name buffy))