;;; 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
(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)
(setq process
(cond
((or (eq pop3-stream-type 'ssl)
- (and (not pop3-stream-type) (= port 995))) ; pop3s
+ (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))