diff options
Diffstat (limited to 'lisp/mail')
-rw-r--r-- | lisp/mail/smtpmail.el | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el index 9b045b25584..8a1e86b7750 100644 --- a/lisp/mail/smtpmail.el +++ b/lisp/mail/smtpmail.el @@ -397,35 +397,35 @@ for `smtpmail-try-auth-method'.") (with-temp-buffer ;; Get index, get first mail, send it, update index, get second ;; mail, send it, etc... - (let ((file-msg "") + (let (file-data file-elisp (qfile (expand-file-name smtpmail-queue-index-file smtpmail-queue-dir)) result) (insert-file-contents qfile) (goto-char (point-min)) (while (not (eobp)) - (setq file-msg (buffer-substring (point) (line-end-position))) + (setq file-data (buffer-substring (point) (line-end-position))) + (setq file-elisp (concat file-data ".el")) ;; FIXME: Avoid `load' which can execute arbitrary code and is hence ;; a source of security holes. Better read the file and extract the ;; data "by hand". - ;;(load file-msg) + ;;(load file-elisp) (with-temp-buffer - (insert-file-contents (concat file-msg ".el")) + (insert-file-contents file-elisp) (goto-char (point-min)) (pcase (read (current-buffer)) (`(setq smtpmail-recipient-address-list ',v) (skip-chars-forward " \n\t") (unless (eobp) (message "Ignoring trailing text in %S" - (concat file-msg ".el"))) + file-elisp)) (setq smtpmail-recipient-address-list v)) - (sexp (error "Unexpected code in %S: %S" - (concat file-msg ".el") sexp)))) + (sexp (error "Unexpected code in %S: %S" file-elisp sexp)))) ;; Insert the message literally: it is already encoded as per ;; the MIME headers, and code conversions might guess the ;; encoding wrongly. (with-temp-buffer (let ((coding-system-for-read 'no-conversion)) - (insert-file-contents file-msg)) + (insert-file-contents file-data)) (let ((smtpmail-mail-address (or (and mail-specify-envelope-from (mail-envelope-from)) user-mail-address))) @@ -435,8 +435,8 @@ for `smtpmail-try-auth-method'.") (current-buffer))) (error "Sending failed: %s" result)) (error "Sending failed; no recipients")))) - (delete-file file-msg) - (delete-file (concat file-msg ".el")) + (delete-file file-data) + (delete-file file-elisp) (delete-region (point-at-bol) (point-at-bol 2))) (write-region (point-min) (point-max) qfile)))) |