- (insert headers))))
-
-(defun nndoc-generate-mime-parts-head (article)
- (let* ((entry (cdr (assq article nndoc-dissection-alist)))
- (headers (nth 6 entry)))
- (when headers
- (insert headers))
- (insert-buffer-substring
- nndoc-current-buffer (car entry) (nth 1 entry))))
+ (search-forward "\n\n")
+ (let ((case-fold-search nil)
+ (limit (point)))
+ (goto-char (point-min))
+ (or (save-excursion (re-search-forward "^MIME-Version:" limit t))
+ (insert "Mime-Version: 1.0\n")))
+ ;; Generate default header before entity fields.
+ (goto-char (point-min))
+ (nndoc-generate-mime-parts-head article t)))
+
+(defun nndoc-generate-mime-parts-head (article &optional body-present)
+ (let ((entry (cdr (assq (if body-present 1 article) nndoc-dissection-alist))))
+ (let ((subject (if body-present
+ nndoc-mime-subject
+ (concat "<" (nth 5 entry) ">")))
+ (message-id (nth 6 entry))
+ (references (nth 7 entry)))
+ (insert nndoc-mime-header)
+ (and subject (insert "Subject: " subject "\n"))
+ (and message-id (insert "Message-ID: " message-id "\n"))
+ (and references (insert "References: " references "\n")))))