;;; gnus-ofsetup.el --- Setup advisor for Offline reading for Mail/News.
-;;; $Id: gnus-ofsetup.el,v 1.1.2.2 1998-11-10 14:53:51 ichikawa Exp $
+;;;
+;;; $Id: gnus-ofsetup.el,v 1.1.2.15 1999-02-15 06:24:21 ichikawa Exp $
+;;;
+;;; Copyright (C) 1998 Tatsuya Ichikawa
+;;; Author: Tatsuya Ichikawa <t-ichi@po.shiojiri.ne.jp>
+;;;
+;;; This file is part of Semi-gnus.
+;;;
+;;; GNU Emacs is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2, or (at your option)
+;;; any later version.
+
+;;; GNU Emacs is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+
+;;; 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.
+;;;
+;;;; Commentary:
+;;; How to use.
+;;;
+;;; M-x load[RET]gnus-ofsetup
+;;; M-x gnus-setup-for-offline
+;;;
;;; Code:
(defvar pop3-fma-spool-file-alist nil)
(defvar pop3-fma-movemail-type nil)
(defvar pop3-fma-movemail-arguments nil)
-(defvar address)
-(defvar options)
+(defvar use-miee nil)
+(defvar address nil)
+(defvar mail-source nil)
+(defvar options nil)
;;; To silence byte compiler
(and
'(("gnus-agent" 1) ("nnspool" 2))
nil t nil))
(mail-method 'nnmail)
- (use-miee
- (y-or-n-p "Use MIEE post/send message "))
(program
(read-file-name "Dialup/Hangup program(type nil you do not use): "))
(mta-type
(num-of-address
(read-from-minibuffer "How many e-mail address do you have: "))
)
+ (if (string-equal news-method "nnspool")
+ (setq use-miee t)
+ (setq use-miee (y-or-n-p "Use MIEE post/send message ")))
;;
;; Set variables.
(if (string-equal news-method "gnus-agent")
;;
(setq gnus-offline-mail-fetch-method mail-method)
(setq gnus-offline-use-miee use-miee)
+
;; Set programs.
(if (string-equal program "nil")
(progn
(setq gnus-offline-dialup-program nil))
(let ((options
(read-from-minibuffer "Dialup program options: ")))
- (setq gnus-offline-dialup-program-arguments (split-string options "[\t ]+")))
+ (setq gnus-offline-dialup-program-arguments
+ (split-string options "[\t ]+")))
(let ((options
(read-from-minibuffer "Hangup program options: ")))
- (setq gnus-offline-hangup-program-arguments (split-string options "[\t ]+")))
+ (setq gnus-offline-hangup-program-arguments
+ (split-string options "[\t ]+")))
(setq gnus-offline-hangup-program program)
(setq gnus-offline-dialup-program program))
-
- ;; Set spool directory for outgoing messages.
+
+ ;; Set spool directory for outgoing messages.
(if use-miee
(progn
;; Setting for MIEE with nnspool.
(let ((news-spool
- (read-from-minibuffer "News spool directory for sending: " "~/spool/mail.out"))
+ (read-from-minibuffer
+ "News spool directory for sending: "
+ "/usr/spool/news.out"))
(mail-spool
- (read-from-minibuffer "Mail spool directory for sending: " "~/spool/news.out")))
+ (read-from-minibuffer
+ "Mail spool directory for sending: "
+ "/usr/spool/mail.out")))
(setq gnus-offline-mail-spool-directory mail-spool)
(setq gnus-offline-news-spool-directory news-spool)
(setq gnus-offline-drafts-queue-type 'miee)
-
+
;; Load MIEE.
(load "miee")
;; Set news post function for MIEE.
(setq message-send-news-function 'gnspool-request-post)
-
;; Spool directory setting - MIEE.
(if (not (file-exists-p gnus-offline-mail-spool-directory))
(make-directory gnus-offline-mail-spool-directory t))
- (setq sendmail-to-spool-directory gnus-offline-mail-spool-directory)
+ (setq sendmail-to-spool-directory
+ gnus-offline-mail-spool-directory)
(if (not (file-exists-p gnus-offline-news-spool-directory))
(make-directory gnus-offline-news-spool-directory t))
- (setq news-spool-request-post-directory gnus-offline-news-spool-directory)))
- ;; Setting for gnus-agent.
- (setq gnus-offline-drafts-queue-type 'agent)
- (let ((agent-directory
- (read-from-minibuffer "Agent directory: " "~/News/agent")))
- (setq gnus-agent-directory agent-directory)))
+ (setq news-spool-request-post-directory
+ gnus-offline-news-spool-directory)))
+
+ ;; Set drafts type gnus-agent.
+ (setq gnus-offline-drafts-queue-type 'agent))
+ ;; Setting for gnus-agent.
+ (if (eq gnus-offline-news-fetch-method 'nnagent)
+ (let ((agent-directory
+ (read-from-minibuffer "Agent directory: " "~/News/agent")))
+ (setq gnus-agent-directory agent-directory)))
+
;; Determin MTA type.
(if (string-equal mta-type "smtp")
(setq gnus-offline-MTA-type 'smtp)
;; Set E-Mail Address and pop3 movemail type.
(setq i (string-to-int num-of-address))
(setq address nil)
- (while (> i 0)
- (setq address (append address (list (list
- (concat "po:" (read-from-minibuffer "Email address (user@mailhost): "))
- (completing-read
- "Authentification Method (TAB to completion): "
- '(("pass" 1) ("apop" 2)) nil t nil)))))
- (setq i (- i 1)))
-
- ;; Replace "hoge" -> 'hoge
- (mapcar
- (lambda (x)
- (if (string-equal (nth 1 x) "pass")
- (setcar (cdr x) 'pass)
- (setcar (cdr x) 'apop)))
- address)
- (setq pop3-fma-spool-file-alist address)
+ (if (not (locate-library "mail-source"))
+ (progn
+ (while (> i 0)
+ (setq address
+ (append address
+ (list
+ (list
+ (concat "po:"
+ (read-from-minibuffer
+ "Email address (user@mailhost): "))
+ (completing-read
+ "Authentification Method (TAB to completion): "
+ '(("pass" 1) ("apop" 2)) nil t nil)))))
+ (setq i (- i 1)))
+ ;; Replace "hoge" -> 'hoge
+ (mapcar
+ (lambda (x)
+ (if (string-equal (nth 1 x) "pass")
+ (setcar (cdr x) 'pass)
+ (setcar (cdr x) 'apop)))
+ address)
+ (setq pop3-fma-spool-file-alist address)
+ ;; Set movemail type.
+ (let ((movemail-type
+ (completing-read
+ "Select movemail type for retreave mail (TAB to completion): "
+ '(("exe" 1) ("lisp" 2))
+ nil t nil))
+ )
+ (if (string-equal movemail-type "exe")
+ (let ((options
+ (read-from-minibuffer "movemail options: ")))
+ (setq pop3-fma-movemail-arguments (split-string options "[\t ]+"))))
+ (if (string-equal movemail-type "exe")
+ (setq pop3-fma-movemail-type 'exe)
+ (setq pop3-fma-movemail-type 'lisp))))
+ ;;
+ ;; Use mail-source.el
+ (setq mail-source nil)
+ (while (> i 0)
+ (let ((user (read-from-minibuffer "Mail Account name : "))
+ (server (read-from-minibuffer "Mail server : "))
+ (auth (completing-read
+ "Authentification Method (TAB to completion): "
+ '(("pop" 1) ("apop" 2)) nil t nil))
+ (islisp (y-or-n-p "Do you use pop3.el to fetch mail? ")))
+ (if (not islisp)
+ (let ((prog (read-file-name "movemail program name: "
+ exec-directory "movemail"))
+ (args (read-from-minibuffer "movemail options: " "-pf")))
+ (setq mail-source
+ (append mail-source
+ (list
+ (list
+ 'pop
+ :user user
+ :server server
+ :program
+ (format "%s %s %s %s %s"
+ prog
+ args
+ "po:%u"
+ "%t"
+ "%p")
+ :authentication auth)))))
+ (setq mail-source
+ (append mail-source
+ (list
+ (list
+ 'pop
+ :user user
+ :server server
+ :authentication auth))))))
+ (setq i (- i 1)))
+ ;; Replace "hoge" -> 'hoge
+ (mapcar
+ (lambda (x)
+ (if (string-equal (car (last x)) "pop")
+ (setcar (last x) (quote 'pop))
+ (setcar (last x) (quote 'apop))))
+ mail-source)
+ (setq gnus-offline-mail-source mail-source)))
- ;; Set movemail type.
- (let ((movemail-type
- (completing-read
- "Select movemail type for retreave mail (TAB to completion): "
- '(("exe" 1) ("lisp" 2))
- nil t nil))
- )
- (if (string-equal movemail-type "exe")
- (let ((options
- (read-from-minibuffer "movemail options: ")))
- (setq pop3-fma-movemail-arguments (split-string options "[\t ]+"))))
- (if (string-equal movemail-type "exe")
- (setq pop3-fma-movemail-type 'exe)
- (setq pop3-fma-movemail-type 'lisp))))
-
+ (setq save-passwd
+ (y-or-n-p "Do you save password information to newsrc file? "))
+
;; Write to setting file.
(setq tmp-buffer (get-buffer-create "* Setting"))
(set-buffer "* Setting")
(insert (current-time-string))
(insert "\n")
(insert ";;\n")
+
+ ;; write Basic setting
(insert "(setq gnus-offline-news-fetch-method '")
(insert (prin1-to-string gnus-offline-news-fetch-method))
(insert ")\n")
(insert "(setq gnus-offline-dialup-program ")
(insert (prin1-to-string gnus-offline-dialup-program))
(insert ")\n")
+
+ ;; write dialup/hangup program and options.
(if (stringp gnus-offline-dialup-program)
(progn
(insert "(setq gnus-offline-dialup-program-arguments '")
(insert "(setq gnus-offline-hangup-program-arguments '")
(insert (prin1-to-string gnus-offline-hangup-program-arguments))
(insert ")\n")))
+
+ ;; write setting about MIEE.
(if gnus-offline-use-miee
(progn
(insert "(setq gnus-offline-mail-spool-directory ")
(insert "(setq gnus-offline-news-spool-directory ")
(insert (prin1-to-string gnus-offline-news-spool-directory))
(insert ")\n")
+ (insert "(setq sendmail-to-spool-directory gnus-offline-mail-spool-directory)\n")
+ (insert "(setq news-spool-request-post-directory gnus-offline-news-spool-directory)\n")
(insert "(load \"miee\")\n")
- (insert "(message-offline-state)\n"))
+ (insert "(setq message-send-news-function '")
+ (insert (prin1-to-string message-send-news-function))
+ (insert ")\n")))
+
+ ;; write setting about nnspool and gnus-agent.
+ (if (equal gnus-offline-news-fetch-method 'nnspool)
+ (insert "(message-offline-state)\n")
(insert "(setq gnus-agent-directory ")
(insert (prin1-to-string gnus-agent-directory))
(insert ")\n"))
+
+ ;; write setting about queue type -- MIEE or nnagent.
(insert "(setq gnus-offline-drafts-queue-type '")
(insert (prin1-to-string gnus-offline-drafts-queue-type))
(insert ")\n")
(insert "(setq gnus-offline-MTA-type '")
(insert (prin1-to-string gnus-offline-MTA-type))
(insert ")\n")
+
+ ;; Offline setting for gnus-nntp-*
(insert "(setq gnus-nntp-service nil)\n")
(insert "(setq gnus-nntp-server nil)\n")
- (insert "(setq nnmail-spool-file nil)\n")
- (insert "(add-hook 'gnus-group-mode-hook 'gnus-offline-processed-by-timer)\n")
+
+ ;; Write setting about hooks.
+ (insert "(add-hook 'gnus-group-mode-hook 'gnus-offline-processed-by-timer t)\n")
+ (insert "(add-hook 'gnus-group-mode-hook 'gnus-offline-error-check t)\n")
(insert "(add-hook 'gnus-after-getting-new-news-hook 'gnus-offline-after-get-new-news)\n")
(insert "(add-hook 'gnus-after-getting-news-hook 'gnus-offline-after-get-new-news)\n")
(if (eq gnus-offline-news-fetch-method 'nnspool)
- (insert "(add-hook 'after-getting-news-hook 'gnus-offline-nnspool-hangup-line)\n"))
+ (progn
+ (insert "(add-hook 'after-getting-news-hook 'gnus-offline-nnspool-hangup-line)\n")
+ (insert "(add-hook 'gnus-before-startup-hook (lambda () (setq nnmail-spool-file nil)))\n")))
(insert "(add-hook 'message-send-hook 'gnus-offline-message-add-header)\n")
(insert "(autoload 'gnus-offline-setup \"gnus-offline\")\n")
(insert "(add-hook 'gnus-load-hook 'gnus-offline-setup)\n")
- (insert "(require 'pop3-fma)\n")
- (insert "(add-hook 'message-send-hook 'pop3-fma-message-add-header)\n")
- (insert "(setq pop3-fma-spool-file-alist '")
- (insert (prin1-to-string pop3-fma-spool-file-alist))
- (insert ")\n")
- (insert "(setq pop3-fma-movemail-type '")
- (insert (prin1-to-string pop3-fma-movemail-type))
- (insert ")\n")
- (if (eq pop3-fma-movemail-type 'exe)
+
+ (if (not (locate-library "mail-source"))
(progn
- (insert "(setq pop3-fma-movemail-arguments '")
- (insert (prin1-to-string pop3-fma-movemail-arguments))
- (insert ")\n")))
+ ;; Write setting about pop3-fma.
+ (insert "(require 'pop3-fma)\n")
+ (insert "(add-hook 'message-send-hook 'pop3-fma-message-add-header)\n")
+ (insert "(setq pop3-fma-spool-file-alist '")
+ (insert (prin1-to-string pop3-fma-spool-file-alist))
+ (insert ")\n")
+ (insert "(setq pop3-fma-movemail-type '")
+ (insert (prin1-to-string pop3-fma-movemail-type))
+ (insert ")\n")
+ (if save-passwd
+ (insert "(add-hook 'gnus-setup-news-hook \n (lambda ()\n (add-to-list 'gnus-variable-list 'pop3-fma-password)))\n"))
+ (if (eq pop3-fma-movemail-type 'exe)
+ (progn
+ (insert "(setq pop3-fma-movemail-arguments '")
+ (insert (prin1-to-string pop3-fma-movemail-arguments))
+ (insert ")\n"))))
+ ;; Write stting about mail-source.el
+ (insert "(setq gnus-offline-mail-source '")
+ (insert (prin1-to-string gnus-offline-mail-source))
+ (insert ")\n")
+ (insert "(setq nnmail-spool-file gnus-offline-mail-source)\n")
+ (insert "(require 'read-passwd)\n")
+ (insert "(setq mail-source-read-passwd 'read-pw-read-passwd)\n")
+ (insert "(add-hook 'gnus-setup-news-hook 'read-pw-set-mail-source-passwd-cache)\n")
+ (if save-passwd
+ (insert "(add-hook 'gnus-setup-news-hook \n (lambda ()\n (add-to-list 'gnus-variable-list 'mail-source-password-cache)))\n"))
+ )
(write-region (point-min) (point-max) gnus-offline-setting-file)
(kill-buffer "* Setting"))
- )
- (load gnus-offline-setting-file)
- )
+ )
+ (load gnus-offline-setting-file))
+;; gnus-ofsetup.el Ends here.