;;(setq smtpmail-sendto-domain "YOUR DOMAIN NAME")
;;(setq smtpmail-debug-info t) ; only to debug problems
-;; To queue mail, set smtpmail-queue-mail to t and use
+;; To queue mail, set smtpmail-queue-mail to t and use
;; smtpmail-send-queued-mail to send.
:type '(choice (const nil) string)
:group 'smtpmail)
-(defcustom smtpmail-smtp-server
+(defcustom smtpmail-smtp-server
(or (getenv "SMTPSERVER") smtpmail-default-smtp-server)
"*The name of the host running SMTP server."
:type '(choice (const nil) string)
:type 'boolean
:group 'smtpmail)
-(defcustom smtpmail-queue-mail nil
+(defcustom smtpmail-queue-mail nil
"*Specify if mail is queued (if t) or sent immediately (if nil).
If queued, it is stored in the directory `smtpmail-queue-dir'
and sent with `smtpmail-send-queued-mail'."
;; ... then undo escaping of matching parentheses,
;; including matching nested parentheses.
(goto-char fullname-start)
- (while (re-search-forward
+ (while (re-search-forward
"\\(\\=\\|[^\\]\\(\\\\\\\\\\)*\\)\\\\(\\(\\([^\\]\\|\\\\\\\\\\)*\\)\\\\)"
fullname-end 1)
(replace-match "\\1(\\3)" t)
(setq smtpmail-recipient-address-list
(smtpmail-deduce-address-list tembuf (point-min) delimline))
(kill-buffer smtpmail-address-buffer)
-
+
(smtpmail-do-bcc delimline)
; Send or queue
(if (not smtpmail-queue-mail)
(if (not (null smtpmail-recipient-address-list))
- (if (not (smtpmail-via-smtp
+ (if (not (smtpmail-via-smtp
smtpmail-recipient-address-list tembuf))
(error "Sending failed; SMTP protocol error"))
(error "Sending failed; no recipients"))
- (let* ((file-data (concat
+ (let* ((file-data (concat
smtpmail-queue-dir
(concat (time-stamp-yyyy-mm-dd)
"_" (time-stamp-hh:mm:ss))))
(insert (concat
"(setq smtpmail-recipient-address-list '"
(prin1-to-string smtpmail-recipient-address-list)
- ")\n"))
+ ")\n"))
(write-file file-elisp)
(set-buffer (generate-new-buffer buffer-scratch))
(insert (concat file-data "\n"))
- (append-to-file (point-min)
- (point-max)
+ (append-to-file (point-min)
+ (point-max)
smtpmail-queue-index)
)
(kill-buffer buffer-scratch)
(if (bufferp errbuf)
(kill-buffer errbuf)))))
+;;;###autoload
(defun smtpmail-send-queued-mail ()
"Send mail that was queued as a result of setting `smtpmail-queue-mail'."
(interactive)
;; encoding wrongly.
(setq tembuf (find-file-noselect file-msg nil t))
(if (not (null smtpmail-recipient-address-list))
- (if (not (smtpmail-via-smtp smtpmail-recipient-address-list
+ (if (not (smtpmail-via-smtp smtpmail-recipient-address-list
tembuf))
(error "Sending failed; SMTP protocol error"))
- (error "Sending failed; no recipients"))
+ (error "Sending failed; no recipients"))
(delete-file file-msg)
(delete-file (concat file-msg ".el"))
(kill-buffer tembuf)
- (kill-line 1))
+ (kill-line 1))
(set-buffer buffer-index)
(save-buffer smtpmail-queue-index)
(kill-buffer buffer-index)
(make-local-variable 'smtpmail-read-point)
(setq smtpmail-read-point (point-min))
-
+
(if (or (null (car (setq greeting (smtpmail-read-response process))))
(not (integerp (car greeting)))
(>= (car greeting) 400))
(>= (car response-code) 400))
(throw 'done nil)
))
-
+
;; RCPT TO: <recipient>
(let ((n 0))
(while (not (null (nth n recipient)))
(throw 'done nil)
)
))
-
+
;; DATA
(smtpmail-send-command process "DATA")
(setq response-strings
(cons (buffer-substring smtpmail-read-point (- match-end 2))
response-strings))
-
+
(goto-char smtpmail-read-point)
(if (looking-at "[0-9]+ ")
(let ((begin (match-beginning 0))
nil
(setq response-continue nil)
(setq return-value
- (cons (string-to-int
- (buffer-substring begin end))
+ (cons (string-to-int
+ (buffer-substring begin end))
(nreverse response-strings)))))
-
+
(if (looking-at "[0-9]+-")
(progn (if smtpmail-debug-info
(message "%s" (car response-strings)))
(progn
(setq smtpmail-read-point match-end)
(setq response-continue nil)
- (setq return-value
+ (setq return-value
(cons nil (nreverse response-strings)))
)
)))
smtpmail-code-conv-from)
(setq data (string-as-multibyte
(encode-coding-string data smtpmail-code-conv-from))))
-
+
(if smtpmail-debug-info
(insert data "\r\n"))
)
)
)
-
+
(defun smtpmail-deduce-address-list (smtpmail-text-buffer header-start header-end)
"Get address list suitable for smtp RCPT TO: <address>."
(require 'mail-utils) ;; pick up mail-strip-quoted-names
-
+
(unwind-protect
(save-excursion
(set-buffer smtpmail-address-buffer) (erase-buffer)