.\" FAQ -  -*- Indented-Text -*- created at: Wed Feb 23 09:48:55 JST 1994
--------------------------------------------------------------------------

(Q)	cmailメイルのバージョンを新しくしたら以前のフォルダが読めな
	くなりました. なぜでしょう?

(A)	バージョン2.28以前のものはNetNewsで配布される経路でソースに含ま
	れる`'(0177)が落ちて, フォルダのフォーマットが違ってしまってい
	る可能性があります. この事故により発生したフォーマットのフォルダ
	を現在のフォーマットのフォルダに修正するためのelispプログラムを
	小林＠那須研院生三重大さんが書いて下さいました. 以下にそのプログ
	ラムを引用します.
	
         (defun cmail-fix ()
	   "メールのボーダが\"\^L\"になっているのを\"\^_\^L\"に変える.
            フォルダのセーブは自分の責任で行なうこと."
	   (interactive)
	   (let (matchlength
		 (flag 0))
	     (save-excursion
	       (beginning-of-buffer)
	       (catch 'loop
		 (while (re-search-forward
			 "^\\(\^L\\|\^_\^L\\|\\^_\\^L\\)$" nil t)
		   (setq matchlength (- (match-end 0) (match-beginning 0)))
		   (cond
		    ((= matchlength 1)
		     (setq flag 1)
		     (replace-match "\^_\^L"))
		    ((= matchlength 2)
		     (if (not (zerop flag))
			 (replace-match "^_^L")
		       (setq flag 2)
		       (throw 'loop nil)))
		    ((= matchlength 4)
		     (if (not (zerop flag))
			 (replace-match "\^L")
		       (setq flag 3)
		       (throw 'loop nil)))
		    (t
		     (setq flag -1)
		     (throw 'loop nil))))))
	     (cond
	      ((or (zerop flag) (= flag 3))
	       (message "正しいフォルダですか？"))
	      ((= flag 2)
	       (message "このフォルダは既に直されています。"))
	      ((= flag 1)
	       (message "直りました。"))
	      (t (message "Internal error")))))

--------------------------------------------------------------------------

(Q)	メイルを移動する時, メイルにマークをつけた後でも, カーソル位置の
	メイルにがマークがついていないとカーソルのあるメイルだけしか移動
	しません. どうしてでしょう?

(A)	cmailはメイルに対する操作は, カーソルのあるメイルにマークが
	ついていればマークされている全てのメイルを, マークがなければその
	メイルだけを対象に行なわれます. これはマークがウィンドウの外に出
	てしまうとマークがつけていない時と区別がつかなくなるからです.

--------------------------------------------------------------------------

(Q)	サマリ行の設定方法を教えて下さい.

(A)	普通のサマリ行の設定はドキュメントを読んでもらうとして, ここでは
	少し変わった設定法を紹介しましょう. まず, GNUSに良く似た表示にす
	るためには以下のような行を.emacsに用意します(行数が表示される).
	
	  (setq cmail-summarize-format "%d [%:-18A] %j\n")
	
	サマリ行の設定には単なる文字列だけでなく関数を指定できます. この
	場合表示される度にその関数の戻り値がサマリとして使われます. ここ
	では例としてMH風の表示を実現してみましょう.
	
         (setq cmail-summarize-format
	       '(lambda ()
		  (let ((page (cmail-get-page-number-from-summary)))
		    (format "%s %d %s %s\n"
			    (cmail-summary-fp-value ?d)
			    (save-excursion
			      (cmail-get-folder)
			      (- (cmail-n-page (1+ page)) (cmail-n-page page)))
			    (cmail-fill -20 (cmail-summary-fp-value ?n))
			    (cmail-summary-fp-value ?j)))))
	
	この設定では表示は以下のようになります(バイト数が得られる).
	
         3  94/03/07 3261 Yukihiro Matsumoto   Re: chain-mail.el version 2.39

--------------------------------------------------------------------------

(Q)	メイルを出す時に確認を求めるようにできますか?

(A)	以下のようなコードはどうでしょう?
	
	(add-hook 'cmail-mail-send-hook
		  (lambda ()
		    (or (y-or-n-p "Send OK?")
			(error "terminated."))))

--------------------------------------------------------------------------

(Q)	メーリングリスト等から来るメールが順番通りに到着してない時でも, 
	Folderには, 順番通りに保存したいのですが?

(A)	auto-archiveする前に, INBOXの中で並べ変えておけばOKです.

--------------------------------------------------------------------------

(Q)	メイルを書く時に複数のメールの引用をしたいと思った時, どのように
	すればいいのでしょうか?

(A)	メイル作成中にサマリバッファに移動して, 新たに`r'なり`f'なりを押
	すと
	
	  Unsent message exists: a)bandon, r)ename or i)nclude new citation?
	
	と聞かれますから, iと答えて下さい. この後C-cC-yで引用すれば新し
	いメイルが引用されます. 同様に`R'や`F'では現在カーソルがある位置
	に自動的に引用されます. ちなみにrで別の *mail* バッファが作られ，
	aで現在書きかけのメールが削除されます．

--------------------------------------------------------------------------

(Q)	cmail は MIME に対応していますか?

(A)	tm (Tools for MIME) を併用することで, MIME メッセージの読み書きが
	できます. 現在は tm7.x に対応しています.

	tm の最新版は ftp://ftp.jaist.ac.jp/pub/GNU/elisp/mime/ から ftp
	できます. README に従ってインストールしてください.

	.emacs に (setq cmail-use-mime t) を入れて下されば, この機能が有効
	になります.

--------------------------------------------------------------------------

(Q)	Mule で tm + Mailcrypt を利用し、PGP を使っているのですが、署名
	付きのメッセージをベリファイしようとすると、それが確実に正しくて
	も "WARNING: Bad signature, doesn't match file contents!" と警告
	されます。

(A)	Mule から外部のプログラム(この場合は pgp)に渡す漢字コードが 
	*junet* になってないだめだと考えられます。
	この場合、.emacs で

	 (define-program-coding-system nil ".*pgp.*" (cons *junet* *junet*))

	と設定する必要があります。

--------------------------------------------------------------------------

(Q)	tmをインストールしましたが、cmailのサマリ行のSubjectやFromが日本語
	表示になりません。どうすればいいのでしょうか？

(A)	M-r(cmail-remake-folder-headings)を実行すると、サマリ行に日本語が
	出るようになります。

--------------------------------------------------------------------------

(Q)	INBOX以外のFolderでcmailを終了した場合, INBOXの中のメールを
	auto-archiveしてくれないのですが?

(A)	これは, そういう仕様です. 現在, 見えていないものに対して, 勝手に
	操作しないようになっています. もし, いつでもauto-archiveしたい場
	合は, cmail-quitにcmail-quit-hookというhookが用意されていますの
	で, そこで auto-archiveすれば可能です.

--------------------------------------------------------------------------

(Q)	mail をリプライする時に 'r' もしくは 'R' では Cc: のアドレスには
	メイルが送られません.  自分でフィールドを追加せずに Cc: のアドレ
	スにも同時に送るにはどうすれば良いのでしょうか?

(A)	'r(cmail-reply)'もしくは'R'(cmail-reply-include-text) ではFrom:
	のアドレスに対してしかメイルを送りませんが, `f'(cmail-followup)
	または `F' (cmail-followup-include-text)で mail のリプライを行な
	うと Cc: のフィールドの人々にもメイルを出せます.
	
	大文字と小文字のコマンドの違いは始めに元のメイルを引用するか, し
	ないの違いです. 大文字のコマンドでは元のメイルがあらかじめ引用さ
	れます.

--------------------------------------------------------------------------

(Q)	他のメイラから cmail に移行したのですが, 移行したフォルダに
	は未読のマークがいっぱいついていて, 外すのが面倒です. どうしたら
	いいでしょうか?

(A)	そのフォルダで c(cmail-catch-up-all)を押すと確認を求めて来ますの
	で、y と押して下さい。全ての未読のマークを外せます.

--------------------------------------------------------------------------

(Q)	好きな番号のメールにいっぺんに飛びたいのですが, どうしたらいいの
	ですか?

(A)	`G'(cmail-goto-index)を実行して、好きなメールの番号を入力して下
	さい. ただし, この番号のメイルがリストに表示されている必要があり
	ます.

--------------------------------------------------------------------------

(Q) 	来たメイルをドメイン毎にフォルダー分けしようとしたら
	cmail-folder-alistにはどのように書けばいいのでしょうか?

(A)	文字列は一部一致すれば大丈夫ですので、例えば
	   0000@xxx.co.jp
	   0001@xxx.co.jp
	   0002@xxx.co.jp
	というものを一つのフォルダーに入れようとした場合は、
	    ("From" ("xxx\\.co\\.jp" . "XXX")) 
	で OK です。

--------------------------------------------------------------------------

(Q) 	UNIX styleの From 行（メールの一番頭についている、"From:" ではな
	い "From" 行のことです）を使ってメールを分類したいのですが、出来
	ないのでしょうか？

(A)	cmail-folder-alist には関数を書く事ができますので、任意の設定が
	可能です。例えば、はまだ＠北陸先端大さん(nao@jaist.ac.jp)が以下
	のようなelispプログラムを書いてくださいました。以下にそのプログ
	ラムを引用します。
	
	;; 利用の例:
	;; cmail-folder-alist を、次のように設定した場合、
	;;
	;;(setq cmail-folder-alist
	;;      '((lambda ()
	;;	  (cmail-check-unix-from 
	;;	   '(("foo@bar.baz" "foo")
	;;	     ("hoge@nan.tara" "hoge"))))))
	;;
	;; 自動分類先のfolder は、
	;;
	;; UNIX-style From 行が
	;; "foo@bar.baz" なら "foo", "hoge@nan.tara" なら "hoge"
	
	(defun cmail-check-unix-from (folder-alist)
	  "*mail の UNIX-style From を見て、folder-alist に従って folder 名を返す。
           alist の folder 部分には、関数の指定も可能である。"
	  (if (re-search-forward "^From *" nil t)
	      (save-restriction
		(narrow-to-region (point)
				  (progn
				    (re-search-forward "\n[^ \t]" nil t)
				    (forward-char -1)
				    (point)))
		(goto-char (point-min))
		(let (folder)
		  (while (and folder-alist (null folder))
		    (if (re-search-forward (car (car folder-alist)) nil t)
			(setq folder (cdr (car folder-alist)))
		      (setq folder-alist (cdr folder-alist))))
	  (if (not (functionp folder))
	      folder
	    (goto-char (point-min))
	    (funcall folder))))))

--------------------------------------------------------------------------

(Q) 	送ったメイルのコピーを自分にも送りたいのですが？

(A)	.emacs に以下のように設定します。
	
	(setq mail-self-blind t)

--------------------------------------------------------------------------

(Q) 	今まで、FCC 行を記述して、送信したメイルのログをファイルに残して
	いたのですが、cmail でも、この機能は使えますか？
	また、cmail でこのログの管理ができますか？

(A)	FCC 行の記述については、今まで通り使用できます。
	
	また、cmail には、送信したログをフォルダに保存する機能があ
	ります。例えば、.emacs に以下のように設定します。
	
	(setq cmail-use-send-mail-archive t)
	(setq cmail-archive-folder "archive")
	(setq cmail-archive-from nil)
	
        この場合、archive という名前のフォルダに送信したメイルのログが保
	存されるようになります。 

--------------------------------------------------------------------------

(Q) 	mail をリプライする時に、「 >> 」などの記号を付けて、引用したい
	のですが、どうやればいいのですか？

(A)	これは、nemacs を使っているか、mule を使っているかで方法が違いま
	す。
	
	nemacs の場合は、$EMACS/contrib の下にあるパッチが当たっていれば、
	.emacs の中に
	
	(setq mail-yank-original-default-indentation 0)
	(setq mail-yank-original-quoting-indicator ">> ")
	
	の様に記述します。
	
	上記の方法で引用が出来ない場合や mule を使っている場合には、
	super cite というプログラムがありますので、それを利用します。
	現在( '94 6 22 )は、sc-2.3.tar.gz が最新のようです。 

	ただし，引用記号を相手によって変える事をしないならば，以下のよう
	なコードが有効です(by 植木敏彦＠コベルコシステムさん)．

	(setq mail-yank-prefix "|")
	
	Mule 1.xでは更に以下のような設定が必要です．
	
	(add-hook 'setq mail-citation-hook
	        '(lambda ()
		   (let ((start (point)))
		     (mail-yank-clear-headers start (mark t))
		     (if (null mail-yank-prefix)
			 (indent-rigidly start (mark t) mail-indentation-spaces)
		       (save-excursion
			 (goto-char (point-max))
			 (newline)
			 (delete-blank-lines)
			 (delete-blank-lines))
		       (save-excursion
			 (goto-char start)
			 (newline)
			 (delete-blank-lines)
			 (delete-blank-lines)
			 (while (< (point) (mark t))
			   (insert mail-yank-prefix)
			   (forward-line 1)))))))

--------------------------------------------------------------------------

(Q)	新着メールがあるとき、cmail を起動すると、次のようなメッセー
	ジが出て、cmail が動きません。
	
	Searching for program: no such file or directory, movemail

(A)	cmail は spool から mail を取得する際に、emacs に附属してい
	る movemail というプログラムを使います。 ( movemail は通常 
	$EMACS/etc の下に置かれています。)
	
	この場合、以下の点を確認して下さい。
	
	1, movemail がインストールされているかどうか。
	
	movemail がない場合は、管理者にお願いして、movemail をインストー
	ルしてもらってください。
	
	2, movemail をあなたが利用できるかどうか。
	
	もし、実行パーミッションが立ってなかったり、オーナーやモードが適
	切でない場合は、これも管理者にお願いして直してもらいましょう。
	
	movemail はメールのスプールディレクトリからメールファイルを移動
	するための実効{ユーザ,グループ}IDが必要ですので, OSによっては,
	`Set {user,group} ID Bit'が ON になっている必要のある場合があり
	ます(必要ない場合もあります。例えばSunOS 4.X では必要ないはずで
	す)。ちなみに HP-UX の場合,
	
	-rwxr-sr-x   1 root     mail      42257  ??月 ??日 19XX年 movemail*
	
	となっているそうです.(情報提供：橋本信次さん<bc561@rp.ricoh.co.jp>)
	
	3, emacs の exec-path という変数が正常かどうか。
	
	emacs で、
		M-x describe-variable
	として、mini-buffer に
		Describe variable: 
	と聞かれたら、
		exec-path
	と入力して、movemail が置いてある場所に path が通っているか確か
	めて見てください。

--------------------------------------------------------------------------

(Q)	メイルを取り込んでくる最中にemacsが異常終了して，cmail.crashとい
	うファイルができたのですが．

(A)	cmailはメイルを取り込んでくる時にスプールからホームディレ
	クトリのcmail.crashというファイルにコピーして，それからINBOXに
	取り込みます．途中でemacsが落ちてもメイルが失われないための工夫
	です．cmail.crashがある時には次回cmailを起動した時にそちら
	から読み込むようになっています．
	
	このファイルが出来た時は絶対に消さないで下さい．メイルが失われ
	ます．

--------------------------------------------------------------------------

(Q)	フォルダを月ごと、あるいは週ごとに自動で分割してくれる機能はない
	のでしょうか？

(A)	一つはcronでフォルダの名前を毎月変更することです．以下のスクリプ
	トを月始めに実行して下さい．
	
        #!/bin/sh
        user=matz
        mdir=/home/$user/Mail
        set `LANG=C date`
        year=$6
        case $2 in
        Jan) mon=12; year=`expr $year - 1`;;
        Feb) mon=01;; Mar) mon=02;; Apr) mon=03;;
        May) mon=04;; Jun) mon=05;; Jul) mon=06;;
        Aug) mon=07;; Sep) mon=08;; Oct) mon=09;;
        Nov) mon=10;; Dec) mon=11;;
        esac
        
        cd $mdir
        for fldr in `cat .bigf`; do
          set `date`
          file=$fldr.$year.$mon
          if [ -f $file ]; then
            echo "Subject explains all." | mail -s "failed to prune $fldr" $user
          else
            if [ -f $fldr ]; then
              mv $fldr $file
            fi
          fi
        done
        
       	もう一つの方法はauto-archieするフォルダ名に年月を含めることです．
       	以下のコードを参考にして下さい
        
        (setq cmail-folder-alist
              ("X-Sequence"
               ("cmail" . (lambda() (cmail-plus-date "cmail")))
              )
        ))
        
        (defun cmail-plus-date (fldr-name)
          "与えられた fldr-name の後ろに YYMM を付属したものを返す。
           YY および MM は mail の Date: フィールドから取得する。"
          (setq dt (cmail-trans-date-form (cmail-get-field-values "Date")))
          (format "%s%s%s" fldr-name (substring dt 0 2) (substring dt 3 5)))

--------------------------------------------------------------------------

(Q)	GNUS から m や r でメイルを書いたり、o でフォルダにセーブする時
	に、cmail を使えないでしょうか。

(A)	~/.emacs に以下のようなフックを追加すると、お望みの動作が得られ
	るはずです。

	  (add-hook 'gnus-article-prepare-hook
				(lambda () (require 'gnus-cmail)))

--------------------------------------------------------------------------

(Q)	RMAIL のフォルダーを cmail 形式に変換したいのですが

(A)	このパッケージに含まれる cmail-r2c.doc を参照してください。

--------------------------------------------------------------------------

(Q)	X window system 上の VM のように、起動時に新しい frame を作るに
	はどうしたらいいのでしょう。

(A)	以下のようなコードを ~/.emacs に設定すると、お望みの動作が得られ
	るはずです。

	(if (eq window-system 'x)
		(add-hook 'cmail-startup-hook
              '(lambda ()
                 (switch-to-buffer nil)
                 (switch-to-buffer-other-frame "**cmail-summary**")
                 )))

--------------------------------------------------------------------------

(Q)	特定の時間に自動で、mule を起動しM-x cmail をしてメールをINBOX 
	へ移動させたい場合はどうしたらよいのでしょうか？

(A)	以下のような cmail-auto.el というファイルを用意しします

	(load "cmail")
	(cmail-get-spooled-mail)
	(cmail-save-all-folders)

	そして、crontab に次のように設定します。

     30 23 * * * mule -batch -l /path/to/cmail-auto.el > /dev/null 2>&1

	ただし、この時間にはcmailを起動したままにしないように気をつけて
	ください．INBOXの整合性が無くなって最悪メイルが失われます．

--------------------------------------------------------------------------

(Q)	まだわからないことがあるのですが。

(A)	cmail のパッケージには、texinfo 形式のドキュメントも含まれていま
	す。ここに書かれていない有用な情報もありますので、そちらにも目を
	通してみてください。

	それでもわからない場合や，実際に使用してみて，バグを発見したり，
	「あーしたらどうか」とか「これはないんじゃない」といった感想をお
	持ちになりましたら，`cmail'ユーザのためのメイリングリストに参加
	されてはどうでしょうか?  参加方法に関する詳細は、今紹介した 
	texinfo 形式のドキュメントに書かれています。

--------------------------------------------------------------------------
Local variables:
fill-column: 72
tab-width: 8
end:
