Mercurial > emacs
changeset 15452:6f41e17b3452
(smtpmail-send-it): Don't handle FCC fields until after determining FROM field.
Delete code that converted "S:" to "Subject:".
Insert FROM field unless it already exists (code from sendmail.el).
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 18 Jun 1996 22:38:23 +0000 |
parents | 89c1e7fe879a |
children | ad4f0ac5e7ef |
files | lisp/mail/smtpmail.el |
diffstat | 1 files changed, 52 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mail/smtpmail.el Tue Jun 18 22:35:10 1996 +0000 +++ b/lisp/mail/smtpmail.el Tue Jun 18 22:38:23 1996 +0000 @@ -3,6 +3,7 @@ ;; Copyright (C) 1995, 1996 Free Software Foundation, Inc. ;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp> +;; Maintainer: Brian D. Carlstrom <bdc@ai.mit.edu> ;; Keywords: mail ;; This file is part of GNU Emacs. @@ -25,7 +26,6 @@ ;;; Commentary: ;; Send Mail to smtp host from smtpmail temp buffer. -;; alfa release ;; Please add these lines in your .emacs(_emacs). ;; @@ -36,6 +36,7 @@ ;;(setq smtpmail-debug-info t) ;;(load-library "smtpmail") ;;(setq smtpmail-code-conv-from nil) +;;(setq user-full-name "YOUR NAME HERE") ;;; Code: @@ -103,12 +104,7 @@ (replace-match "\n")) (let ((case-fold-search t)) (goto-char (point-min)) - ;; Find and handle any FCC fields. (goto-char (point-min)) - (if (re-search-forward "^FCC:" delimline t) - (mail-do-fcc delimline)) - (goto-char (point-min)) - (require 'mail-utils) (while (re-search-forward "^Resent-to:" delimline t) (setq resend-to-addresses (save-restriction @@ -133,19 +129,65 @@ ;;; (progn ;;; (forward-line 1) ;;; (insert "Sender: " (user-login-name) "\n"))) - ;; "S:" is an abbreviation for "Subject:". - (goto-char (point-min)) - (if (re-search-forward "^S:" delimline t) - (replace-match "Subject:")) ;; Don't send out a blank subject line (goto-char (point-min)) (if (re-search-forward "^Subject:[ \t]*\n" delimline t) (replace-match "")) + ;; Put the "From:" field in unless for some odd reason + ;; they put one in themselves. + (goto-char (point-min)) + (if (not (re-search-forward "^From:" delimline t)) + (let* ((login user-mail-address) + (fullname (user-full-name))) + (cond ((eq mail-from-style 'angles) + (insert "From: " fullname) + (let ((fullname-start (+ (point-min) 6)) + (fullname-end (point-marker))) + (goto-char fullname-start) + ;; Look for a character that cannot appear unquoted + ;; according to RFC 822. + (if (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]" + fullname-end 1) + (progn + ;; Quote fullname, escaping specials. + (goto-char fullname-start) + (insert "\"") + (while (re-search-forward "[\"\\]" + fullname-end 1) + (replace-match "\\\\\\&" t)) + (insert "\"")))) + (insert " <" login ">\n")) + ((eq mail-from-style 'parens) + (insert "From: " login " (") + (let ((fullname-start (point))) + (insert fullname) + (let ((fullname-end (point-marker))) + (goto-char fullname-start) + ;; RFC 822 says \ and nonmatching parentheses + ;; must be escaped in comments. + ;; Escape every instance of ()\ ... + (while (re-search-forward "[()\\]" fullname-end 1) + (replace-match "\\\\\\&" t)) + ;; ... then undo escaping of matching parentheses, + ;; including matching nested parentheses. + (goto-char fullname-start) + (while (re-search-forward + "\\(\\=\\|[^\\]\\(\\\\\\\\\\)*\\)\\\\(\\(\\([^\\]\\|\\\\\\\\\\)*\\)\\\\)" + fullname-end 1) + (replace-match "\\1(\\3)" t) + (goto-char fullname-start)))) + (insert ")\n")) + ((null mail-from-style) + (insert "From: " login "\n"))))) ;; Insert an extra newline if we need it to work around ;; Sun's bug that swallows newlines. (goto-char (1+ delimline)) (if (eval mail-mailer-swallows-blank-line) (newline)) + ;; Find and handle any FCC fields. + (goto-char (point-min)) + (if (re-search-forward "^FCC:" delimline t) + (mail-do-fcc delimline)) (if mail-interactive (save-excursion (set-buffer errbuf)