X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fpop3.el;h=eeb7d70dcf45227fafe72bb748e6497c06b35aad;hb=7a2610150418bf7de83013b5f8862147c7dff300;hp=0ed89961c15d9dbdb51c059ed4e6ba5a23663058;hpb=c9844c42130c90677c0f3d72239faffb380e4c0d;p=gnus diff --git a/lisp/pop3.el b/lisp/pop3.el index 0ed89961c..eeb7d70dc 100644 --- a/lisp/pop3.el +++ b/lisp/pop3.el @@ -1,7 +1,7 @@ ;;; 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 ;; Maintainer: FSF @@ -89,8 +89,12 @@ If `pop3-leave-mail-on-server' is non-nil the mail is to be left 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) @@ -167,6 +171,11 @@ Shorter values mean quicker response, but are more CPU intensive.") (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) @@ -194,6 +203,7 @@ Shorter values mean quicker response, but are more CPU intensive.") (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. @@ -202,7 +212,7 @@ SSL/TSL-secured stream) or `starttls' (use the starttls mechanism 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) @@ -223,6 +233,10 @@ Returns the process associated with the connection." (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 @@ -232,13 +246,18 @@ Returns the process associated with the connection." (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))