diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 56958417300..b9dbddad3ca 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2011-09-10 Eli Zaretskii + + * sending.texi (Mail Misc): Document mail-add-attachment. + 2011-09-04 Eli Zaretskii * basic.texi (Inserting Text): Add index entries. (Bug#9433) diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi index 02857459cc1..50ec852d740 100644 --- a/doc/emacs/sending.texi +++ b/doc/emacs/sending.texi @@ -556,8 +556,8 @@ package, which provides more flexible citation @cindex Multipurpose Internet Mail Extensions You can @dfn{attach} a file to an outgoing message by typing @kbd{C-c C-a} (@code{mml-attach-file}) in the mail buffer. Attaching -is done using the MIME (Multipurpose Internet Mail Extensions) -standard. +is done using the Multipurpose Internet Mail Extensions +(@acronym{MIME}) standard. The @code{mml-attach-file} command prompts for the name of the file, and for the attachment's @dfn{content type}, @dfn{description}, and @@ -570,6 +570,13 @@ recipient will see a link to the attachment within the message body, or @samp{attachment}, which means the link will be separate from the body. +@findex mail-add-attachment + The @code{mml-attach-file} command is specific to Message mode; in +Mail mode use @kbd{mail-add-attachment} instead. It will prompt only +for the name of the file, and will determine the content type and the +disposition automatically. If you want to include some description of +the attached file, type that in the message body. + The actual contents of the attached file are not inserted into the mail buffer. Instead, some placeholder text is inserted into the mail buffer, like this: diff --git a/etc/NEWS b/etc/NEWS index dbeca0b521b..aaeeed4803e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -156,6 +156,15 @@ If you had that set, then then you need to put in your ~/.authinfo file instead. +*** sendmail changes ++++ +You can now add MIME attachments to outgoing messages with the new +command `mail-add-attachment'. + +--- +The command `mail-attach-file' was renamed to `mail-insert-file'; the +old name is now an obsolete alias to the new name. + ** Emacs server and client changes +++ *** New option `server-port' specifies the port on which the Emacs diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 89b43bab43d..d1a219dfb8d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2011-09-10 Eli Zaretskii + + * mail/sendmail.el (mml-to-mime, mml-attach-file) + (mm-default-file-encoding): Remove autoload forms, they are + replaced with autoload cookies in mml.el and mm-encode.el. + (mail-add-attachment): New command. + (mail-mode-map): Add a menu-bar item for mail-add-attachment. + (mail-mode): Mention mail-insert-file and mail-add-attachment in + the doc string. + (mml-to-mime, mml-attach-file, mm-default-file-encoding): Declare. + 2011-09-10 Reuben Thomas * simple.el (count-words-region): Use buffer if there's no region. diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index b989314557f..010070526ef 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,10 @@ +2011-09-10 Eli Zaretskii + + Add autoload cookies for functions used by sendmail.el. + * mm-encode.el (mm-default-file-encoding): Add autoload cookie. + + * mml.el (mml-to-mime, mml-attach-file): Add autoload cookies. + 2011-09-09 Katsumi Yamaoka * gnus-art.el (article-date-ut): Work properly even when there are diff --git a/lisp/gnus/mm-encode.el b/lisp/gnus/mm-encode.el index 055ba475b8e..0fb0e7a0795 100644 --- a/lisp/gnus/mm-encode.el +++ b/lisp/gnus/mm-encode.el @@ -97,6 +97,7 @@ This variable should never be set directly, but bound before a call to (insert "Content-Type: multipart/mixed; boundary=\"" boundary "\"\n") boundary)) +;;;###autoload (defun mm-default-file-encoding (file) "Return a default encoding for FILE." (if (not (string-match "\\.[^.]+$" file)) diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index 8b196fa26fc..e3939188a7b 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el @@ -897,6 +897,7 @@ If HANDLES is non-nil, use it instead reparsing the buffer." (autoload 'message-encode-message-body "message") (declare-function message-narrow-to-headers-or-head "message" ()) +;;;###autoload (defun mml-to-mime () "Translate the current buffer from MML to MIME." ;; `message-encode-message-body' will insert an encoded Content-Description @@ -1294,6 +1295,7 @@ to specify options." :version "22.1" ;; Gnus 5.10.9 :group 'message) +;;;###autoload (defun mml-attach-file (file &optional type description disposition) "Attach a file to the outgoing MIME message. The file is not inserted or encoded until you send the message with diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index f7dc01e8ebf..4a319990b2f 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -31,9 +31,6 @@ (require 'rfc2047) -(autoload 'mml-to-mime "mml" - "Translate the current buffer from MML to MIME.") - (defgroup sendmail nil "Mail sending commands for Emacs." :prefix "mail-" @@ -310,6 +307,9 @@ The default value matches citations like `foo-bar>' plus whitespace." (define-key map [menu-bar mail] (cons "Mail" (make-sparse-keymap "Mail"))) + (define-key map [menu-bar mail attachment] + '("Attach File" . mail-add-attachment)) + (define-key map [menu-bar mail fill] '("Fill Citation" . mail-fill-yanked-message)) @@ -700,6 +700,8 @@ Here are commands that move to a header field (and create it if there isn't): \\[mail-signature] mail-signature (insert `mail-signature-file' file). \\[mail-yank-original] mail-yank-original (insert current message, in Rmail). \\[mail-fill-yanked-message] mail-fill-yanked-message (fill what was yanked). +\\[mail-insert-file] insert a text file into the message. +\\[mail-add-attachment] attach to the message a file as binary attachment. Turning on Mail mode runs the normal hooks `text-mode-hook' and `mail-mode-hook' (in that order)." (make-local-variable 'mail-reply-action) @@ -868,6 +870,7 @@ header when sending a message to a mailing list." :type '(repeat string) :group 'sendmail) +(declare-function mml-to-mime "mml" ()) (defun mail-send () "Send the message in the current buffer. @@ -1697,7 +1700,7 @@ If the current line has `mail-yank-prefix', insert it on the new line." (split-line mail-yank-prefix)) -(defun mail-attach-file (&optional file) +(defun mail-insert-file (&optional file) "Insert a file at the end of the buffer, with separator lines around it." (interactive "fAttach file: ") (save-excursion @@ -1716,6 +1719,21 @@ If the current line has `mail-yank-prefix', insert it on the new line." (insert-file-contents file) (or (bolp) (newline)) (goto-char start)))) + +(define-obsolete-function-alias 'mail-attach-file 'mail-insert-file "24.1") + +(declare-function mml-attach-file "mml" + (file &optional type description disposition)) +(declare-function mm-default-file-encoding "mm-encode" (file)) + +(defun mail-add-attachment (file) + "Add FILE as a MIME attachment to the end of the mail message being composed." + (interactive "fAttach file: ") + (mml-attach-file file + (or (mm-default-file-encoding file) + "application/octet-stream") nil) + (setq mail-encode-mml t)) + ;; Put these commands last, to reduce chance of lossage from quitting ;; in middle of loading the file.