emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Option to use From: header as envelope address


From: Simon Josefsson
Subject: [PATCH] Option to use From: header as envelope address
Date: Fri, 11 Oct 2002 04:27:44 +0200
User-agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (i386-debian-linux-gnu)

This adds an option to use the From: header as SMTP envelope address.
Note that the default is unchanged.  Thanks to Micha Wiedenmann who
tested it.  I have installed it.

2002-10-11  Simon Josefsson  <address@hidden>

        * mail/sendmail.el (mail-envelope-from): New option `header' to
        use RFC 2822 From: header as the envelope address.
        (mail-envelope-from): New function, this should be used instead of
        looking at the `mail-envelope-from' variable.
        (sendmail-send-it): Use it.

        * mail/smtpmail.el (smtpmail-via-smtp): Use it.

Index: sendmail.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/mail/sendmail.el,v
retrieving revision 1.258
diff -u -p -u -w -r1.258 sendmail.el
--- sendmail.el 23 Sep 2002 00:17:51 -0000      1.258
+++ sendmail.el 11 Oct 2002 02:17:42 -0000
@@ -82,6 +82,7 @@ If this is nil while `mail-specify-envel
 content of `user-mail-address' is used."
   :version "21.1"
   :type '(choice (string :tag "From-name")
+                (const :tag "Use From: header from message" header)
                 (const :tag "Use `user-mail-address'" nil))
   :group 'sendmail)
 
@@ -775,6 +776,14 @@ the user from the mailer."
              (set-buffer-modified-p nil)
              (delete-auto-save-file-if-necessary t))))))
 
+(defun mail-envelope-from ()
+  "Return the envelope mail address to use when sending mail.
+This function uses `mail-envelope-from'."
+  (if (eq mail-envelope-from 'header)
+      (nth 1 (mail-extract-address-components
+             (mail-fetch-field "From")))
+    mail-envelope-from))
+
 ;; This does the real work of sending a message via sendmail.
 ;; It is called via the variable send-mail-function.
 
@@ -822,7 +831,7 @@ external program defined by `sendmail-pr
        ;; local binding in the mail buffer will take effect.
        (envelope-from
         (and mail-specify-envelope-from
-             (or mail-envelope-from user-mail-address))))
+             (or (mail-envelope-from) user-mail-address))))
     (unwind-protect
        (save-excursion
          (set-buffer tembuf)
Index: smtpmail.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/mail/smtpmail.el,v
retrieving revision 1.49
diff -u -p -r1.49 smtpmail.el
--- smtpmail.el 29 Sep 2002 03:19:35 -0000      1.49
+++ smtpmail.el 11 Oct 2002 02:18:33 -0000
@@ -540,6 +540,7 @@ This is relative to `smtpmail-queue-dir'
        (host (or smtpmail-smtp-server
                  (error "`smtpmail-smtp-server' not defined")))
        (port smtpmail-smtp-service)
+       (envelope-from (mail-envelope-from))
        response-code
        greeting
        process-buffer
@@ -689,7 +690,7 @@ This is relative to `smtpmail-queue-dir'
                     "")))
 ;            (smtpmail-send-command process (format "MAIL FROM:address@hidden" 
(user-login-name) (smtpmail-fqdn)))
              (smtpmail-send-command process (format "MAIL FROM: <%s>%s%s"
-                                                    (or mail-envelope-from
+                                                    (or envelope-from
                                                         smtpmail-mail-address)
                                                     size-part
                                                     body-part))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]