emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/emacs-23 r100585: RFC2047-encode header of


From: Kenichi Handa
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-23 r100585: RFC2047-encode header of outgoing mails.
Date: Mon, 23 May 2011 13:45:00 +0900
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 100585 [merge]
committer: Kenichi Handa <address@hidden>
branch nick: emacs-23
timestamp: Mon 2011-05-23 13:45:00 +0900
message:
  RFC2047-encode header of outgoing mails.
modified:
  lisp/ChangeLog
  lisp/mail/sendmail.el
  lisp/mail/smtpmail.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-05-22 18:47:51 +0000
+++ b/lisp/ChangeLog    2011-05-23 04:44:29 +0000
@@ -1,3 +1,14 @@
+2011-05-23  Kenichi Handa  <address@hidden>
+
+       * mail/sendmail.el: Require `rfc2047'.
+       (mail-insert-from-field): Do not perform RFC2047 encoding.
+       (mail-encode-header): New function.
+       (sendmail-send-it): Set buffer-file-coding-system of the work
+       buffer to the return value of select-message-coding-system.  Call
+       mail-encode-header.
+
+       * mail/smtpmail.el (smtpmail-send-it): Call mail-encode-header.
+
 2011-05-22  Sean Neakums  <address@hidden>  (tiny change)
 
        * mail/supercite.el (sc-default-cite-frame): Handle

=== modified file 'lisp/mail/sendmail.el'
--- a/lisp/mail/sendmail.el     2011-01-02 23:50:46 +0000
+++ b/lisp/mail/sendmail.el     2011-05-23 04:44:29 +0000
@@ -34,7 +34,7 @@
   (require 'rmail)
   (require 'mailalias))
 
-(autoload 'rfc2047-encode-string "rfc2047")
+(require 'rfc2047)
 
 (defgroup sendmail nil
   "Mail sending commands for Emacs."
@@ -952,12 +952,14 @@
 See also the function `select-message-coding-system'.")
 
 (defun mail-insert-from-field ()
+  "Insert the \"From:\" field of a mail header.
+The style of the field is determined by the variable `mail-from-style'.
+This function does not perform RFC2047 encoding."
   (let* ((login user-mail-address)
         (fullname (user-full-name))
         (quote-fullname nil))
     (if (string-match "[^\0-\177]" fullname)
-       (setq fullname (rfc2047-encode-string fullname)
-             quote-fullname t))
+       (setq quote-fullname t))
     (cond ((null mail-from-style)
           (insert "From: " login "\n"))
          ;; This is deprecated.
@@ -1017,6 +1019,20 @@
                 (goto-char fullname-start))))
           (insert ")\n")))))
 
+(defun mail-encode-header (beg end)
+  "Encode the mail header between BEG and END according to RFC2047.
+Return non-nil if and only if some part of the header is encoded."
+  (save-restriction
+    (narrow-to-region beg end)
+    (let* ((selected (select-message-coding-system))
+          (mm-coding-system-priorities
+           (if (and selected (coding-system-get selected :mime-charset))
+               (cons selected mm-coding-system-priorities)
+             mm-coding-system-priorities))
+          (tick (buffer-chars-modified-tick)))
+      (rfc2047-encode-message-header)
+      (= tick (buffer-chars-modified-tick)))))
+
 ;; Normally you will not need to modify these options unless you are
 ;; using some non-genuine substitute for sendmail which does not
 ;; implement each and every option that the original supports.
@@ -1060,6 +1076,7 @@
          (unless multibyte
            (set-buffer-multibyte nil))
          (insert-buffer-substring mailbuf)
+         (set-buffer-file-coding-system selected-coding)
          (goto-char (point-max))
          ;; require one newline at the end.
          (or (= (preceding-char) ?\n)
@@ -1166,6 +1183,8 @@
            (if mail-interactive
                (with-current-buffer errbuf
                  (erase-buffer))))
+         ;; Encode the header according to RFC2047.
+         (mail-encode-header (point-min) delimline)
          (goto-char (point-min))
          (if (let ((case-fold-search t))
                (or resend-to-addresses

=== modified file 'lisp/mail/smtpmail.el'
--- a/lisp/mail/smtpmail.el     2011-01-02 23:50:46 +0000
+++ b/lisp/mail/smtpmail.el     2011-05-23 04:44:29 +0000
@@ -362,6 +362,8 @@
            (if mail-interactive
                (with-current-buffer errbuf
                  (erase-buffer))))
+         ;; Encode the header according to RFC2047.
+         (mail-encode-header (point-min) delimline)
          ;;
          (setq smtpmail-address-buffer (generate-new-buffer "*smtp-mail*"))
          (setq smtpmail-recipient-address-list


reply via email to

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