Merge handa-2001-2-14.
[elisp/lemi.git] / mail / feedmail.el
index f864de3..dcff42b 100644 (file)
@@ -1356,15 +1356,23 @@ complicated cases."
   ;; 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))