(autoload 'starttls-open-stream "starttls")
(autoload 'starttls-negotiate "starttls")
(autoload 'mail-strip-quoted-names "mail-utils")
+(autoload 'message-make-date "message")
+(autoload 'message-make-message-id "message")
(autoload 'rfc2104-hash "rfc2104")
;;;
(insert ")\n"))
((null mail-from-style)
(insert "From: " login "\n")))))
+ ;; Insert a `Message-Id:' field if there isn't one yet.
+ (goto-char (point-min))
+ (unless (re-search-forward "^Message-Id:" delimline t)
+ (insert "Message-Id: " (message-make-message-id) "\n"))
+ ;; Insert a `Date:' field if there isn't one yet.
+ (goto-char (point-min))
+ (unless (re-search-forward "^Date:" delimline t)
+ (insert "Date: " (message-make-date) "\n"))
;; Insert an extra newline if we need it to work around
;; Sun's bug that swallows newlines.
(goto-char (1+ delimline))
(if (re-search-forward "^FCC:" delimline t)
(mail-do-fcc delimline))
(if mail-interactive
- (save-excursion
- (set-buffer errbuf)
+ (with-current-buffer errbuf
(erase-buffer))))
;;
;;
(buffer-data (create-file-buffer file-data))
(buffer-elisp (create-file-buffer file-elisp))
(buffer-scratch "*queue-mail*"))
- (save-excursion
- (set-buffer buffer-data)
+ (with-current-buffer buffer-data
(erase-buffer)
(insert-buffer tembuf)
(write-file file-data)
(let ((buffer-index (find-file-noselect smtpmail-queue-index))
(file-msg "")
(tembuf nil))
- (save-excursion
- (set-buffer buffer-index)
+ (with-current-buffer buffer-index
(beginning-of-buffer)
(while (not (eobp))
- (setq file-msg (buffer-substring (point) (save-excursion
- (end-of-line)
- (point))))
+ (setq file-msg (buffer-substring (point) (line-end-position)))
(load file-msg)
(setq tembuf (find-file-noselect file-msg))
(if (not (null smtpmail-recipient-address-list))
(get-buffer-create (format "*trace of SMTP session to %s*" host)))
;; clear the trace buffer of old output
- (save-excursion
- (set-buffer process-buffer)
+ (with-current-buffer process-buffer
(erase-buffer))
;; open the connection to the server
;; set the send-filter
(set-process-filter process 'smtpmail-process-filter)
- (save-excursion
- (set-buffer process-buffer)
+ (with-current-buffer process-buffer
(set-buffer-process-coding-system 'raw-text-unix 'raw-text-unix)
(make-local-variable 'smtpmail-read-point)
(setq smtpmail-read-point (point-min))
(if (or (member 'size supported-extensions)
(assoc 'size supported-extensions))
(format " SIZE=%d"
- (save-excursion
- (set-buffer smtpmail-text-buffer)
+ (with-current-buffer smtpmail-text-buffer
;; size estimate:
(+ (- (point-max) (point-min))
;; Add one byte for each change-of-line
; (throw 'done nil))
t ))
(if process
- (save-excursion
- (set-buffer (process-buffer process))
+ (with-current-buffer (process-buffer process)
(smtpmail-send-command process "QUIT")
(smtpmail-read-response process)
(defun smtpmail-process-filter (process output)
- (save-excursion
- (set-buffer (process-buffer process))
+ (with-current-buffer (process-buffer process)
(goto-char (point-max))
(insert output)))
this-line
this-line-end)
- (save-excursion
- (set-buffer buffer)
+ (with-current-buffer buffer
(goto-char (point-min)))
(while data-continue
- (save-excursion
- (set-buffer buffer)
+ (with-current-buffer buffer
(beginning-of-line)
(setq this-line (point))
(end-of-line)
(defun smtpmail-deduce-address-list (smtpmail-text-buffer header-start header-end)
"Get address list suitable for smtp RCPT TO: <address>."
(unwind-protect
- (save-excursion
- (set-buffer smtpmail-address-buffer) (erase-buffer)
+ (with-current-buffer smtpmail-address-buffer
+ (erase-buffer)
(let
((case-fold-search t)
(simple-address-list "")
(goto-char (point-min))
;; RESENT-* fields should stop processing of regular fields.
(save-excursion
- (if (re-search-forward "^Resent-\\(to\\|cc\\|bcc\\):" header-end t)
- (setq addr-regexp "^Resent-\\(to\\|cc\\|bcc\\):")
- (setq addr-regexp "^\\(To:\\|Cc:\\|Bcc:\\)")))
+ (setq addr-regexp
+ (if (re-search-forward "^Resent-\\(to\\|cc\\|bcc\\):"
+ header-end t)
+ "^Resent-\\(to\\|cc\\|bcc\\):"
+ "^\\(To:\\|Cc:\\|Bcc:\\)")))
(while (re-search-forward addr-regexp header-end t)
(replace-match "")