* mail/sendmail.el (sendmail-send-it): Replace any
[bpt/emacs.git] / lisp / mail / sendmail.el
index c0b9ee5..b392ddc 100644 (file)
@@ -1113,7 +1113,10 @@ external program defined by `sendmail-program'."
            (if (not (re-search-forward "^From:" delimline t))
                (mail-insert-from-field))
            ;; Possibly add a MIME header for the current coding system
-           (let (charset)
+           (let (charset where-content-type)
+             (goto-char (point-min))
+             (setq where-content-type
+                   (re-search-forward "^Content-type:" delimline t))
              (goto-char (point-min))
              (and (eq mail-send-nonascii 'mime)
                   (not (re-search-forward "^MIME-version:" delimline t))
@@ -1122,11 +1125,19 @@ external program defined by `sendmail-program'."
                   selected-coding
                   (setq charset
                         (coding-system-get selected-coding :mime-charset))
-                  (goto-char delimline)
-                  (insert "MIME-version: 1.0\n"
-                          "Content-type: text/plain; charset="
-                          (symbol-name charset)
-                          "\nContent-Transfer-Encoding: 8bit\n")))
+                  (progn
+                    (goto-char delimline)
+                    (insert "MIME-version: 1.0\n"
+                            "Content-type: text/plain; charset="
+                            (symbol-name charset)
+                            "\nContent-Transfer-Encoding: 8bit\n")
+                  ;; The character set we will actually use
+                  ;; should override any specified in the message itself.
+                    (when where-content-type
+                      (goto-char where-content-type)
+                      (beginning-of-line)
+                      (delete-region (point)
+                                     (progn (forward-line 1) (point)))))))
            ;; Insert an extra newline if we need it to work around
            ;; Sun's bug that swallows newlines.
            (goto-char (1+ delimline))