(require 'imap)
(eval-when-compile (defvar display-time-mail-function)))
(eval-and-compile
+ (defvar pop3-leave-mail-on-server)
(autoload 'pop3-movemail "pop3")
(autoload 'pop3-get-message-count "pop3")
(autoload 'nnheader-cancel-timer "nnheader")
(autoload 'nnheader-run-at-time "nnheader"))
(require 'format-spec)
-(require 'mm-util)
(require 'message) ;; for `message-directory'
(defgroup mail-source nil
(eval-when-compile
(mapcar (lambda (a)
(list 'const (car a)))
- imap-authenticator-alist)))
+ imap-authenticator-alist)))
(defconst mail-source-imap-streams
(eval-when-compile
(mapcar (lambda (a)
(list 'const (car a)))
- imap-stream-alist)))
+ imap-stream-alist)))
(defcustom mail-sources nil
"*Where the mail backends will look for incoming mail.
(const :format "" webmail)
(checklist :tag "Options" :greedy t
(group :inline t
- (const :format "" :value :subtype)
- ;; Should be generated from
- ;; `webmail-type-definition', but we
- ;; can't require webmail without W3.
- (choice :tag "Subtype"
- :value hotmail
- (const hotmail)
- (const yahoo)
- (const netaddress)
- (const netscape)
- (const my-deja)))
+ (const :format "" :value :subtype)
+ ;; Should be generated from
+ ;; `webmail-type-definition', but we
+ ;; can't require webmail without W3.
+ (choice :tag "Subtype"
+ :value hotmail
+ (const hotmail)
+ (const yahoo)
+ (const netaddress)
+ (const netscape)
+ (const my-deja)))
(group :inline t
(const :format "" :value :user)
(string :tag "User"))
(:program)
(:function)
(:password)
- (:authentication password))
+ (:connection)
+ (:authentication password)
+ (:leave))
(maildir
(:path (or (getenv "MAILDIR") "~/Maildir/"))
(:subdirs ("new" "cur"))
(defun mail-source-fetch-with-program (program)
(zerop (call-process shell-file-name nil nil nil
- shell-command-switch program)))
+ shell-command-switch program)))
(defun mail-source-run-script (script spec &optional delay)
(when script
(pop3-mailhost server)
(pop3-port port)
(pop3-authentication-scheme
- (if (eq authentication 'apop) 'apop 'pass)))
+ (if (eq authentication 'apop) 'apop 'pass))
+ (pop3-connection-type connection)
+ (pop3-leave-mail-on-server
+ (or leave
+ (and (boundp 'pop3-leave-mail-on-server)
+ pop3-leave-mail-on-server))))
(if (or debug-on-quit debug-on-error)
(save-excursion (pop3-movemail mail-source-crash-box))
(condition-case err
(not (if function
(funcall function file mail-source-crash-box)
(let ((coding-system-for-write
- mm-text-coding-system)
+ nnheader-text-coding-system)
(coding-system-for-read
- mm-text-coding-system))
+ nnheader-text-coding-system)
+ (output-coding-system
+ nnheader-text-coding-system)
+ (input-coding-system
+ nnheader-text-coding-system))
(with-temp-file mail-source-crash-box
(insert-file-contents file)
(goto-char (point-min))
-;;; ;; Unix mail format
-;;; (unless (looking-at "\n*From ")
-;;; (insert "From maildir "
-;;; (current-time-string) "\n"))
-;;; (while (re-search-forward "^From " nil t)
-;;; (replace-match ">From "))
-;;; (goto-char (point-max))
+;;; ;; Unix mail format
+;;; (unless (looking-at "\n*From ")
+;;; (insert "From maildir "
+;;; (current-time-string) "\n"))
+;;; (while (re-search-forward "^From " nil t)
+;;; (replace-match ">From "))
+;;; (goto-char (point-max))
;;; (insert "\n\n")
;; MMDF mail format
(insert "\001\001\001\001\n"))
(autoload 'imap-error-text "imap")
(autoload 'imap-message-flags-add "imap")
(autoload 'imap-list-to-message-set "imap")
- (autoload 'imap-range-to-message-set "imap")
- (autoload 'nnheader-ms-strip-cr "nnheader"))
+ (autoload 'imap-range-to-message-set "imap"))
(defvar mail-source-imap-file-coding-system 'binary
"Coding system for the crashbox made by `mail-source-fetch-imap'.")
(mail-source-bind (imap source)
(let ((from (format "%s:%s:%s" server user port))
(found 0)
- (buf (get-buffer-create (generate-new-buffer-name " *imap source*")))
+ (buf (get-buffer-create
+ (format " *imap source %s:%s:%s *" server user mailbox)))
(mail-source-string (format "imap:%s:%s" server mailbox))
(imap-shell-program (or (list program) imap-shell-program))
remove)
password) buf)
(imap-mailbox-select mailbox nil buf))
(let ((coding-system-for-write mail-source-imap-file-coding-system)
+ (output-coding-system mail-source-imap-file-coding-system)
str)
(with-temp-file mail-source-crash-box
;; Avoid converting 8-bit chars from inserted strings to
;; multibyte.
- (mm-disable-multibyte)
+ (set-buffer-multibyte nil)
;; remember password
(with-current-buffer buf
(when (or imap-password