summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen <larsi@gnus.org>2016-04-26 00:59:50 +0200
committerLars Magne Ingebrigtsen <larsi@gnus.org>2016-04-26 00:59:50 +0200
commitfd8956d36abaaa90137cf9f9c4b4095e3a2ac7c1 (patch)
tree7d577d84988e775d496a2bbc58d9c3e9c3ade600
parent77ba0f1c5a259615ec049e21d061c4646e29f1d6 (diff)
smtpmail would say it's done before it is
* lisp/mail/smtpmail.el (smtpmail-via-smtp): Move the sending of the data end marker from here... (bug#23020). (smtpmail-send-data): ... to here, so that we don't get a "Sending done" before we've sent the final "." (which can make the SMPT server reject the email.
-rw-r--r--lisp/mail/smtpmail.el9
1 files changed, 5 insertions, 4 deletions
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 8e0bb3ae6b..f21b847b49 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -858,8 +858,6 @@ Returns an error if the server cannot be contacted."
;; Send the contents.
(smtpmail-command-or-throw process "DATA")
(smtpmail-send-data process smtpmail-text-buffer)
- ;; DATA end "."
- (smtpmail-command-or-throw process ".")
;; Return success.
nil))
(when (and process
@@ -957,10 +955,11 @@ Returns an error if the server cannot be contacted."
(process-send-string process "\r\n"))
(defun smtpmail-send-data (process buffer)
- (let ((data-continue t) sending-data
+ (let ((data-continue t)
(pr (with-current-buffer buffer
(make-progress-reporter "Sending email "
- (point-min) (point-max)))))
+ (point-min) (point-max))))
+ sending-data)
(with-current-buffer buffer
(goto-char (point-min)))
(while data-continue
@@ -970,6 +969,8 @@ Returns an error if the server cannot be contacted."
(end-of-line 2)
(setq data-continue (not (eobp))))
(smtpmail-send-data-1 process sending-data))
+ ;; DATA end "."
+ (smtpmail-command-or-throw process ".")
(progress-reporter-done pr)))
(defun smtpmail-deduce-address-list (smtpmail-text-buffer header-start header-end)