(smtpmail-send-queued-mail): Use
authorEli Zaretskii <eliz@gnu.org>
Fri, 21 Dec 2001 12:06:21 +0000 (12:06 +0000)
committerEli Zaretskii <eliz@gnu.org>
Fri, 21 Dec 2001 12:06:21 +0000 (12:06 +0000)
with-temp-buffer instead of find-file-noselect, and bind
coding-system-for-read to no-conversion when reading the queued
messages.  From Simon Josefsson <jas@extundo.com>.

lisp/mail/smtpmail.el

index a24aae7..70376e0 100644 (file)
@@ -367,11 +367,11 @@ This is relative to `smtpmail-queue-dir'.")
 (defun smtpmail-send-queued-mail ()
   "Send mail that was queued as a result of setting `smtpmail-queue-mail'."
   (interactive)
-  ;;; Get index, get first mail, send it, get second mail, etc...
-  (let ((buffer-index (find-file-noselect smtpmail-queue-index))
-       (file-msg "")
-       (tembuf nil))
-    (with-current-buffer buffer-index
+  (with-temp-buffer
+    ;;; Get index, get first mail, send it, update index, get second
+    ;;; mail, send it, etc...
+    (let ((file-msg ""))
+      (insert-file-contents smtpmail-queue-index)
       (beginning-of-buffer)
       (while (not (eobp))
        (setq file-msg (buffer-substring (point) (line-end-position)))
@@ -379,20 +379,18 @@ This is relative to `smtpmail-queue-dir'.")
        ;; Insert the message literally: it is already encoded as per
        ;; the MIME headers, and code conversions might guess the
        ;; encoding wrongly.
-       (setq tembuf (find-file-noselect file-msg nil t))
-       (if (not (null smtpmail-recipient-address-list))
-           (if (not (smtpmail-via-smtp smtpmail-recipient-address-list 
-                                       tembuf))
-               (error "Sending failed; SMTP protocol error"))
-         (error "Sending failed; no recipients"))  
+       (with-temp-buffer
+         (let ((coding-system-for-read 'no-conversion))
+           (insert-file-contents file-msg))
+         (if (not (null smtpmail-recipient-address-list))
+             (if (not (smtpmail-via-smtp smtpmail-recipient-address-list
+                                         (current-buffer)))
+                 (error "Sending failed; SMTP protocol error"))
+           (error "Sending failed; no recipients")))
        (delete-file file-msg)
        (delete-file (concat file-msg ".el"))
-       (kill-buffer tembuf)
-       (kill-line 1))      
-      (set-buffer buffer-index)
-      (save-buffer smtpmail-queue-index)
-      (kill-buffer buffer-index)
-      )))
+       (kill-line 1))
+      (write-region (point-min) (point-max) smtpmail-queue-index))))
 
 ;(defun smtpmail-via-smtp (host,port,sender,destination,smtpmail-text-buffer)