;;; mail-source.el --- functions for fetching mail
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news, mail
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
(const :format "" :value :port)
(choice :tag "Port"
:value "pop3"
- (number :format "%v")
+ (integer :format "%v")
(string :format "%v")))
(group :inline t
(const :format "" :value :user)
(choice :tag "Prescript"
:value nil
(string :format "%v")
- (function :format "%v")))
+ (function :format "%v")
+ (const :tag "None" nil)))
(group :inline t
(const :format "" :value :postscript)
(choice :tag "Postscript"
:value nil
(string :format "%v")
- (function :format "%v")))
+ (function :format "%v")
+ (const :tag "None" nil)))
(group :inline t
(const :format "" :value :function)
(function :tag "Function"))
(const apop)))
(group :inline t
(const :format "" :value :plugged)
- (boolean :tag "Plugged"))))
+ (boolean :tag "Plugged"))
+ (group :inline t
+ (const :format "" :value :stream)
+ (choice :tag "Stream"
+ :value nil
+ (const :tag "Clear" nil)
+ (const starttls)
+ (const :tag "SSL/TLS" ssl)))))
(cons :tag "Maildir (qmail, postfix...)"
(const :format "" maildir)
(checklist :tag "Options" :greedy t
(const :format "" :value :port)
(choice :tag "Port"
:value 143
- number string))
+ integer string))
(group :inline t
(const :format "" :value :user)
(string :tag "User"))
(defcustom mail-source-ignore-errors nil
"*Ignore errors when querying mail sources.
If nil, the user will be prompted when an error occurs. If non-nil,
-the error will be ignored.")
+the error will be ignored."
+ :version "22.1"
+ :group 'mail-source
+ :type 'boolean)
(defcustom mail-source-primary-source nil
"*Primary source for incoming mail.
"*If non-nil, ask for for confirmation before deleting old incoming files.
This variable only applies when `mail-source-delete-incoming' is a positive
number."
+ :version "22.1"
:group 'mail-source
:type 'boolean)
(defcustom mail-source-movemail-program nil
"If non-nil, name of program for fetching new mail."
+ :version "22.1"
:group 'mail-source
:type '(choice (const nil) string))
(:password)
(:connection)
(:authentication password)
+ (:stream nil)
(:leave))
(maildir
(:path (or (getenv "MAILDIR") "~/Maildir/"))
(format "Mail source %s error (%s). Continue? "
(if (memq ':password source)
(let ((s (copy-sequence source)))
- (setcar (cdr (memq ':password s))
+ (setcar (cdr (memq ':password s))
"********")
s)
source)
(defun mail-source-fetch-pop (source callback)
"Fetcher for single-file sources."
(mail-source-bind (pop source)
+ ;; fixme: deal with stream type in format specs
(mail-source-run-script
prescript
(format-spec-make ?p password ?t mail-source-crash-box
(pop3-mailhost server)
(pop3-port port)
(pop3-authentication-scheme
- (if (eq authentication 'apop) 'apop 'pass)))
+ (if (eq authentication 'apop) 'apop 'pass))
+ (pop3-stream-type stream))
(if (or debug-on-quit debug-on-error)
(save-excursion (pop3-get-message-count))
(condition-case err
(eval-when-compile
(if (featurep 'xemacs)
- (require 'itimer)
+ (require 'timer-funcs)
(require 'timer)))
(defun mail-source-start-idle-timer ()
(insert "From imap " (current-time-string) "\n")
(save-excursion
(insert str "\n\n"))
- (while (re-search-forward "^From " nil t)
+ (while (let ((case-fold-search nil))
+ (re-search-forward "^From " nil t))
(replace-match ">From "))
(goto-char (point-max))))
(nnheader-ms-strip-cr))