;; This program was inspired by Kyle E. Jones's vm-pop program.
+;; You have to set the variable `pop3-connection-type' to `ssl' or
+;; `tls' expressly, if you would like to use this module with Gnus
+;; (not T-gnus) for those connection types. For examples:
+;;
+;;(setq mail-sources '((pop :server "POPSERVER" :port 995 :connection ssl
+;; :authentication apop)))
+;;(setq pop3-connection-type 'ssl)
+
;;; Code:
(eval-when-compile (require 'cl))
+;; as-binary-process, open-network-stream-as-binary, write-region-as-binary
+(require 'pces)
+;; exec-installed-p
+(require 'path-util)
+
(require 'mail-utils)
(defvar pop3-maildrop (or (user-login-name) (getenv "LOGNAME") (getenv "USER") nil)
(defvar pop3-debug nil)
(eval-and-compile
- (autoload 'open-ssl-stream "ssl")
(autoload 'starttls-open-stream "starttls")
(autoload 'starttls-negotiate "starttls"))
process)))
(defun pop3-open-ssl-stream-1 (name buffer host service extra-arg)
- (require 'path-util)
+ (require 'ssl)
(let* ((ssl-program-name
pop3-ssl-program-name)
(ssl-program-arguments
"Open a SSL connection for a service to a host.
Returns a subprocess-object to represent the connection.
Args are NAME BUFFER HOST SERVICE."
- (cond ((eq system-type 'windows-nt)
- (let (selective-display
- (coding-system-for-write 'binary)
- (coding-system-for-read 'raw-text-dos))
- (or (pop3-open-ssl-stream-1 name buffer host service "-ssl3")
- (pop3-open-ssl-stream-1 name buffer host service "-ssl2"))))
- (t
- (as-binary-process
- (or (pop3-open-ssl-stream-1 name buffer host service "-ssl3")
- (pop3-open-ssl-stream-1 name buffer host service "-ssl2"))))))
+ (as-binary-process
+ (or (pop3-open-ssl-stream-1 name buffer host service "-ssl3")
+ (pop3-open-ssl-stream-1 name buffer host service "-ssl2"))))
(defun pop3-open-tls-stream (name buffer host service)
"Open a TLSv1 connection for a service to a host.