Function: mml-insert-mime-headers
mml-insert-mime-headers is a byte-compiled function defined in
mml.el.gz.
Signature
(mml-insert-mime-headers CONT TYPE CHARSET ENCODING FLOWED)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/mml.el.gz
(defun mml-insert-mime-headers (cont type charset encoding flowed)
(let (parameters id disposition description)
(setq parameters
(mml-parameter-string
cont mml-content-type-parameters))
(when (or charset
parameters
flowed
(not (equal type mml-generate-default-type))
mml-insert-mime-headers-always)
(when (consp charset)
(error
"Can't encode a part with several charsets"))
(insert "Content-Type: " type)
(when charset
(mml-insert-parameter
(mail-header-encode-parameter "charset" (symbol-name charset))))
(when flowed
(mml-insert-parameter "format=flowed"))
(when parameters
(mml-insert-parameter-string
cont mml-content-type-parameters))
(insert "\n"))
(when (setq id (cdr (assq 'id cont)))
(insert "Content-ID: " id "\n"))
(setq parameters
(mml-parameter-string
cont mml-content-disposition-parameters))
(when (or (setq disposition (cdr (assq 'disposition cont)))
parameters)
(insert "Content-Disposition: "
(or disposition
(mml-content-disposition type (cdr (assq 'filename cont)))))
(when parameters
(let ((cont (copy-sequence cont)))
;; Set the file name to what's specified by the user.
(when-let* ((recipient-filename (cdr (assq 'recipient-filename cont))))
(setcdr cont
(cons (cons 'filename recipient-filename)
(cdr cont))))
(mml-insert-parameter-string
cont mml-content-disposition-parameters)))
(insert "\n"))
(unless (eq encoding '7bit)
(insert (format "Content-Transfer-Encoding: %s\n" encoding)))
(when (setq description (cdr (assq 'description cont)))
(insert "Content-Description: "
;; The current buffer is unibyte, so do the description
;; encoding in a temporary buffer.
(with-temp-buffer
(insert description "\n")
(mail-encode-encoded-word-region (point-min) (point-max))
(buffer-string))))))