# HG changeset patch # User Eli Zaretskii # Date 1008936381 0 # Node ID 8ef1ae58dc296eb504ef88c05b9d07ae5909d3fe # Parent 9709e1618364d63d721f6708d69419f7a4866d4f (smtpmail-send-queued-mail): Use 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 . diff -r 9709e1618364 -r 8ef1ae58dc29 lisp/mail/smtpmail.el --- a/lisp/mail/smtpmail.el Fri Dec 21 11:40:15 2001 +0000 +++ b/lisp/mail/smtpmail.el Fri Dec 21 12:06:21 2001 +0000 @@ -367,11 +367,11 @@ (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 @@ ;; 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)