Function: nnimap-request-accept-article
nnimap-request-accept-article is a byte-compiled function defined in
nnimap.el.gz.
Signature
(nnimap-request-accept-article GROUP &optional SERVER LAST)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnimap.el.gz
(deffoo nnimap-request-accept-article (group &optional server _last)
(unless group
;; We're respooling. Find out where mail splitting would place
;; this article.
(setq group
(caar
(nnmail-article-group
;; We don't really care about the article number, because
;; that's determined by the IMAP server later. So just
;; return the group name.
(lambda (group)
(list (list group)))))))
(when (nnimap-change-group nil server)
(nnmail-check-syntax)
(let ((message-id (message-field-value "message-id"))
sequence message)
(nnimap-add-cr)
(setq message (buffer-substring-no-properties (point-min) (point-max)))
(with-current-buffer (nnimap-buffer)
(when (setq message (or (nnimap-process-quirk "OK Gimap " 'append message)
message))
;; If we have this group open read-only, then unselect it
;; before appending to it.
(when (equal (nnimap-examined nnimap-object) group)
(nnimap-unselect-group))
(erase-buffer)
(setq sequence (nnimap-send-command
"APPEND %S {%d}" (nnimap-group-to-imap group)
(length message)))
(unless nnimap-streaming
(nnimap-wait-for-connection "^[+]"))
(process-send-string (get-buffer-process (current-buffer)) message)
(process-send-string (get-buffer-process (current-buffer))
(if (nnimap-newlinep nnimap-object)
"\n"
"\r\n"))
(let ((result (nnimap-get-response sequence)))
(if (not (nnimap-ok-p result))
(progn
(nnheader-report 'nnimap "%s" result)
nil)
(cons group
(or (nnimap-find-uid-response "APPENDUID" (car result))
(nnimap-find-article-by-message-id
group server message-id
nnimap-request-articles-find-limit))))))))))