[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Patch to smtpmail.el
From: |
Dewey Sasser |
Subject: |
Patch to smtpmail.el |
Date: |
Wed, 23 Jul 2003 15:25:50 -0400 |
Please include this patch to lisp/mail/smtpmail.el in the standard
emacs distribution.
Justification:
In conjunction with a patch to message.el (already submitted to the
Gnus team), this patch allows a user to make the variable
"smtpmail-smtp-server" buffer local and therefore easily control the
mail host through which mail is sent.
It is often desirable to send mail through different hosts when
dealing with multiple on-line "personalities" for privacy or
performance reasons.
----------------------------------------------------------------------
*** smtpmail.el.orig Mon Dec 10 14:52:41 2001
--- smtpmail.el Wed Jul 23 11:01:54 2003
***************
*** 157,162 ****
--- 157,164 ----
(unwind-protect
(save-excursion
(set-buffer tembuf)
+ ;; carry forward any local overrides of the smtp server
+ (smtpmail-clone-locals mailbuf)
(erase-buffer)
(insert-buffer-substring mailbuf)
(goto-char (point-max))
***************
*** 345,350 ****
--- 347,355 ----
(let ((process nil)
(host (or smtpmail-smtp-server
(error "`smtpmail-smtp-server' not defined")))
+ ;; this might be a local override, so we don't want to pull it
+ ;; later when the process buffer is current
+ (sender user-mail-address)
(port smtpmail-smtp-service)
response-code
greeting
***************
*** 471,477 ****
"")))
; (smtpmail-send-command process (format "MAIL FROM:%s@%s"
(user-login-name) (smtpmail-fqdn)))
(smtpmail-send-command process (format "MAIL FROM: <%s>%s%s"
! user-mail-address
size-part
body-part))
--- 476,482 ----
"")))
; (smtpmail-send-command process (format "MAIL FROM:%s@%s"
(user-login-name) (smtpmail-fqdn)))
(smtpmail-send-command process (format "MAIL FROM: <%s>%s%s"
! sender
size-part
body-part))
***************
*** 726,731 ****
--- 731,761 ----
(replace-match ""))))))
+ ;; method pretty much copied from Gnus's message.el because I doubt
+ ;; this file should depend on Gnus.
+
+ ;; Note: I took out the copying of all the gnus variables. Should I
+ ;; have?
+
+ (defun smtpmail-clone-locals (buffer &optional varstr)
+ "Clone the local variables from BUFFER to the current buffer."
+ (let ((locals (save-excursion
+ (set-buffer buffer)
+ (buffer-local-variables)))
+ (regexp "^smtpmail-\\|^user-mail-address"))
+ (mapcar
+ (lambda (local)
+ (when (and (consp local)
+ (car local)
+ (string-match regexp (symbol-name (car local)))
+ (or (null varstr)
+ (string-match varstr (symbol-name (car local)))))
+ (ignore-errors
+ (set (make-local-variable (car local))
+ (cdr local)))))
+ locals)))
+
+
(provide 'smtpmail)
;;; smtpmail.el ends here
----------------------------------------------------------------------
--
Dewey Sasser
dewey@sasser.com
---
No question is so difficult to answer as that to which the answer is
obvious.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Patch to smtpmail.el,
Dewey Sasser <=