[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: smtp issues: progress indicator and gracious failure
From: |
Stefan Monnier |
Subject: |
Re: smtp issues: progress indicator and gracious failure |
Date: |
Fri, 20 May 2011 09:46:26 -0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
> I use vm with smtpmail to send mail. when on a slow wireless
> connection, sending 20Mb attachments can take over 10 minutes. I am
> wondering if there is a way to get some progress indicator, such as a
> continuously updating "percent uploaded" in the echo area?
You could try the patch below.
> also, smtp fails quite often, and then I am left with the outgoing
> mail buffer.
Do you happen to know why?
> I can press c-c c-c to try again and that works in most cases, but
> then it adds the message to the outgoing folder again, so I need to
> erase the .FCC line by hand. wouldn't it be good if a failed message
> was automatically put in "outgoing folder" such as a queued- mail
> directory, and then sent at a later time? perhaps when smtpmail is
> called again to send another message?
That seems to be specific to VM, so I'll let the VM crowd handle it.
Stefan
=== modified file 'lisp/mail/smtpmail.el'
--- lisp/mail/smtpmail.el 2011-02-12 17:51:02 +0000
+++ lisp/mail/smtpmail.el 2011-05-20 12:44:28 +0000
@@ -941,15 +941,20 @@
(process-send-string process "\r\n"))
(defun smtpmail-send-data (process buffer)
- (let ((data-continue t) sending-data)
+ (let ((data-continue t) sending-data
+ (pr (make-progress-reporter "Sending email"
+ (with-current-buffer buffer (point-min))
+ (with-current-buffer buffer (point-max)))))
(with-current-buffer buffer
(goto-char (point-min)))
(while data-continue
(with-current-buffer buffer
+ (progress-reporter-update pr (point))
(setq sending-data (buffer-substring (point-at-bol) (point-at-eol)))
(end-of-line 2)
(setq data-continue (not (eobp))))
- (smtpmail-send-data-1 process sending-data))))
+ (smtpmail-send-data-1 process sending-data))
+ (progress-reporter-done pr)))
(defun smtpmail-deduce-address-list (smtpmail-text-buffer header-start
header-end)
"Get address list suitable for smtp RCPT TO: <address>."