X-Git-Url: http://git.chise.org/gitweb/?p=elisp%2Fflim.git;a=blobdiff_plain;f=smtp.el;h=fe511e9ecb7fc325030c875f4017920b79c7f2f0;hp=fe09491f56d814626cb5abe8bbd5a3dfd33c1ef5;hb=HEAD;hpb=05c653fb2de87a6bed68d443a9f4bcfe186262e1 diff --git a/smtp.el b/smtp.el index fe09491..fe511e9 100644 --- a/smtp.el +++ b/smtp.el @@ -131,23 +131,6 @@ don't define this value." :type '(repeat string) :group 'smtp-extensions) -(defcustom smtp-progress-message-format nil - "Format string used to show progress message while sending mails. -It allows the following special format specifiers: - -%b means show the number of bytes which has been sent - and the total bytes of a mail. -%k means show the number of kilobytes which has been sent - and the total kilobytes of a mail. -%l means show the number of lines which has been sent - and the total lines of a mail. - -For instance, the value \"Sending (%k)...\" shows like -\"Sending (45k/123k)...\" in the echo area." - :type '(radio (string :format "%v\n" :size 0 :value "Sending (%k)...") - (const :tag "Don't show progress message" nil)) - :group 'smtp) - (defcustom smtp-debug nil "*If non-nil, smtp debug info printout into messages." :type 'boolean @@ -416,7 +399,7 @@ BUFFER may be a buffer or a buffer name which contains mail message." (smtp-primitive-rcptto package) (smtp-primitive-data package)) (let ((connection (smtp-find-connection (current-buffer)))) - (when (smtp-connection-opened connection) + (when (and connection (smtp-connection-opened connection)) (condition-case nil (smtp-primitive-quit package) (smtp-error)) @@ -572,7 +555,7 @@ BUFFER may be a buffer or a buffer name which contains mail message." ;; SIZE --- Message Size Declaration (RFC1870) (if (and smtp-use-size (assq 'size extensions)) - (setq extension (format "SIZE=%d" (smtp-package-buffer-internal-size package)))) + (setq extension (format " SIZE=%d" (smtp-package-buffer-internal-size package)))) ;; 8BITMIME --- 8bit-MIMEtransport (RFC1652) (if (and smtp-use-8bitmime (assq '8bitmime extensions)) @@ -580,7 +563,7 @@ BUFFER may be a buffer or a buffer name which contains mail message." (smtp-send-command connection (if extension - (format "MAIL FROM:<%s> %s" sender extension) + (format "MAIL FROM:<%s>%s" sender extension) (format "MAIL FROM:<%s>" sender))) (setq response (smtp-read-response connection)) (if (/= (car response) 250) @@ -602,20 +585,18 @@ BUFFER may be a buffer or a buffer name which contains mail message." (defun smtp-primitive-data (package) (let* ((connection (smtp-find-connection (current-buffer))) - response def prev) + response) (smtp-send-command connection "DATA") (setq response (smtp-read-response connection)) (if (/= (car response) 354) (smtp-response-error response)) (save-excursion (set-buffer (smtp-package-buffer-internal package)) - (setq def (smtp-parse-progress-message-format)) (goto-char (point-min)) (while (not (eobp)) (smtp-send-data connection (buffer-substring (point) (progn (end-of-line)(point)))) - (beginning-of-line 2) - (setq prev (smtp-show-progress-message def prev)))) + (beginning-of-line 2))) (smtp-send-command connection ".") (setq response (smtp-read-response connection)) (if (/= (car response) 250) @@ -768,74 +749,6 @@ BUFFER may be a buffer or a buffer name which contains mail message." recipient-address-list)) (kill-buffer smtp-address-buffer)))) -;;; @ functions used to show progress message -;;; -(defun smtp-parse-progress-message-format () - "Parse the `smtp-progress-message-format' variable. -Return nil, or a cons of an ordinary format string and a type including -nil, the symbols `b', `k' and `l'." - (when smtp-progress-message-format - (let ((format smtp-progress-message-format) - (index 0) - type) - (while (string-match "%\\([bkl]\\)\\|%\\([^%bkl]\\|\\'\\)" format index) - (if (and (not type) - (match-beginning 1)) - (setq index (match-end 0) - type (intern (match-string 1 format)) - format (replace-match - (cond ((eq type 'b) - (concat "%d/" - (number-to-string (buffer-size)))) - ((eq type 'k) - (if (>= (buffer-size) 512) - (concat "%dk/" - (number-to-string - (/ (+ (buffer-size) 512) 1024)) - "k") - (setq type 'b) - (concat "%d/" - (number-to-string (buffer-size))))) - (t - (concat "%d/" - (number-to-string - (count-lines (point-min) - (point-max)))))) - nil nil format)) - (setq index (1+ (match-end 0)) - format (replace-match "%\\&" nil nil format)))) - (cons format type)))) - -(defun smtp-show-progress-message (def prev) - "Show progress message while sending mails. -DEF is a cons cell which is pre-computed by the -`smtp-parse-progress-message-format' function or nil. -PREV is a number shown last time or nil. -Return a number computed this time." - (when (car def) - (let* ((fmt (car def)) - (type (cdr def)) - (value (cond ((eq type 'b) - (- (point) (point-min))) - ((eq type 'k) - (/ (- (point) (point-min) -512) 1024)) - ((eq type 'l) - (count-lines (point-min) (point))))) - message-log-max) - (unless (and prev - value - (eq type 'k) - (<= value prev)) - (cond ((featurep 'xemacs) - (display-message 'no-log (if value - (format fmt value) - fmt))) - (value - (message fmt value)) - (t - (message "%s" fmt)))) - value))) - (provide 'smtp) ;;; smtp.el ends here