;;; pop3.el --- Post Office Protocol (RFC 1460) interface
;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-;; 2004, 2005 Free Software Foundation, Inc.
+;; 2004, 2005, 2006 Free Software Foundation, Inc.
;; Author: Richard L. Pieri <ratinox@peorth.gweep.net>
;; Maintainer: FSF
on the POP server after fetching. Note that POP servers maintain
no state information between sessions, so what the client
believes is there and what is actually there may not match up.
-If they do not, then the whole thing can fall apart and leave you
-with a corrupt mailbox."
+If they do not, then you may get duplicate mails or the whole
+thing can fall apart and leave you with a corrupt mailbox."
+ ;; We can't use the UILD support from XEmacs mail-lib or cvs.m17n.org:
+ ;; http://thread.gmane.org/v9lld8fml4.fsf@marauder.physik.uni-ulm.de
+ ;; http://thread.gmane.org/b9yy8hzy9ej.fsf@jpl.org
+ ;; Any volunteer to re-implement this?
:version "22.1" ;; Oort Gnus
:type 'boolean
:group 'pop3)
(pop3-dele process n))
(setq n (+ 1 n))
(if pop3-debug (sit-for 1) (sit-for 0.1))) ; why?
+ (when (and pop3-leave-mail-on-server
+ (> n 1))
+ (message "pop3.el doesn't support UIDL. Setting `pop3-leave-mail-on-server'
+to %s might not give the result you'd expect." pop3-leave-mail-on-server)
+ (sit-for 1))
(pop3-quit process))
(kill-buffer crashbuf))
t)
(autoload 'open-tls-stream "tls")
(autoload 'starttls-open-stream "starttls")
+(autoload 'starttls-negotiate "starttls") ; avoid warning
(defcustom pop3-stream-type nil
"*Transport security type for POP3 connexions.
to turn on TLS security after opening the stream). However, if
this is nil, `ssl' is assumed for connexions to port
995 (pop3s)."
- :version "23.1" ; fixme?
+ :version "23.0" ;; No Gnus
:group 'pop3
:type '(choice (const :tag "Plain" nil)
(const :tag "SSL/TLS" ssl)
(cond
((or (eq pop3-stream-type 'ssl)
(and (not pop3-stream-type) (member port '(995 "pop3s"))))
+ ;; gnutls-cli, openssl don't accept service names
+ (if (or (equal port "pop3s")
+ (null port))
+ (setq port 995))
(let ((process (open-tls-stream "POP" (current-buffer)
mailhost port)))
(when process
(goto-char (point-max))
(forward-line -1)
(if (looking-at "\\+OK")
- (delete-region (point-min) (point))
+ (progn
+ (delete-region (point-min) (point))
+ nil)
(pop3-quit process)
(error "POP SSL connexion failed"))))
process)))
((eq pop3-stream-type 'starttls)
+ ;; gnutls-cli, openssl don't accept service names
+ (if (equal port "pop3")
+ (setq port 110))
(let ((process (starttls-open-stream "POP" (current-buffer)
- mailhost port)))
+ mailhost (or port 110))))
(pop3-send-command process "STLS")
(let ((response (pop3-read-response process t)))
(if (and response (string-match "+OK" response))