Function: pop3-retr
pop3-retr is a byte-compiled function defined in pop3.el.gz.
Signature
(pop3-retr PROCESS MSG CRASHBUF)
Documentation
Retrieve message-id MSG to buffer CRASHBUF.
Source Code
;; Defined in /usr/src/emacs/lisp/net/pop3.el.gz
(defun pop3-retr (process msg crashbuf)
"Retrieve message-id MSG to buffer CRASHBUF."
(pop3-send-command process (format "RETR %s" msg))
(pop3-read-response process)
(let ((start pop3-read-point) end)
(with-current-buffer (process-buffer process)
(while (not (re-search-forward "^\\.\r\n" nil t))
(unless (memq (process-status process) '(open run))
(error "pop3 server closed the connection"))
(pop3-accept-process-output process)
(goto-char start))
(setq pop3-read-point (point-marker))
;; this code does not seem to work for some POP servers...
;; and I cannot figure out why not.
;; (goto-char (match-beginning 0))
;; (backward-char 2)
;; (if (not (looking-at "\r\n"))
;; (insert "\r\n"))
;; (re-search-forward "\\.\r\n")
(goto-char (match-beginning 0))
(setq end (point-marker))
(pop3-clean-region start end)
(pop3-munge-message-separator start end)
(with-current-buffer crashbuf
(erase-buffer))
(copy-to-buffer crashbuf start end)
(delete-region start end)
)))