[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57. gnus をもっと便利に使おう (2007/12/06)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=gnus%20next"
"MeadowMemo/gnusをもっと便利に使おう"へのコメント(無し)
検索全文Elisp


この章で紹介していること

56. gnus の基本的な使い方 (2006/02/19) で紹介した以外の機能やカスタマイズについて紹介します.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.1 グループの追加, 整理, 使い分け ― 新聞, トピックなど (2007/12/06)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=dev%20gnus"
"MeadowMemo/グループの追加,整理,使い分け―新聞,トピックなど"へのコメント(無し)
検索全文Elisp

ここでは,グループ関連の設定や使い方を紹介します.

57.1.1 gnus で新聞を読もう ― nnshimbun (2003/10/22)  
57.1.2 グループを分かりやすく分類 ― トピック (2003/10/21)  
57.1.3 メールの全文検索 ― gnus-namazu (2003/07/20)  
57.1.4 メールアドレスやヘッダの使い分け (2004/12/19)  
57.1.5 グループパラメータ − グループ毎に設定 (2004/12/19)  
57.1.6 メールでスケジュール管理 ― mhc (2003/03/07)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.1.1 gnus で新聞を読もう ― nnshimbun (2003/10/22)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=nnshimbun"
"MeadowMemo/gnusで新聞を読もう―nnshimbun"へのコメント(2007/12/28)
検索全文Elisp

nnshimbun とは朝日新聞, 日経新聞, 毎日新聞, japantimes, cnet などの Web ページ や, meadow-users-jp などのメーリングリストの過去ログ, hns で書かれた日記などなど の Web ページを gnus で見る機能です. 朝日新聞を読んでる画 面のようなことができます.

読むことのできるニュースを見ると,非常に多くのページに対応していることが分かり ます.

ただし, 動作のためには, emacs-w3m (55.5 テキストブラウザ ― emacs-w3m (2004/08/09)) がインストールされている必要 があります.

emacs-w3m が動いていれば後は簡単です. まず, グループバッファでG n. すると, どの新聞を読むかを聞いてきますので, 選んでください. C-kで消したあと [TAB]で一覧が表示されます. 続いてカテゴリを選択. これを必要なだけ繰り返し ます.

その後, ^でサーババッファに入ります.

すると例えばこんなバッファが出てきます

     {nnfolder:archive} (closed)
     {nndraft:} (opened)
     {nnshimbun:nikkei} (opened)
     {nnshimbun:zdnet} (opened)
     {nnshimbun:cnet} (opened)
     {nnshimbun:asahi} (opened)
     {nnshimbun:japantimes} (opened)
     {nnml:} (opened)
     {nntp:} (opened) (agent)

ここで, サーバを選んでRETとするとカテゴリの一覧が表示されます. ここでも, uで講読/非講読の切り替えができます.

このサーババッファでサーバを選び, J aを入力します. すると, そのサーバは gnus-agent の支配下に入り, オフラインでも読むことができるようになります.

そうすると,

     {nnfolder:archive} (closed)
     {nndraft:} (opened)
     {nnshimbun:nikkei} (opened) (agent)
     {nnshimbun:zdnet} (opened) (agent)
     {nnshimbun:cnet} (opened) (agent)
     {nnshimbun:asahi} (opened) (agent)
     {nnshimbun:japantimes} (opened) (agent)
     {nnml:} (opened)
     {nntp:} (opened) (agent)

という風に, (agent) が表示されます. これで, 設定は完了です. qでサーババッ ファは終了し, グループバッファに戻ります. あとは普通のメールと同じで, グループバッ ファでgを押すと新規記事を取り込んでくれます. メールと全く同じ感覚でニュー スを読むことができるのです.

一度使うとブラウザで見るのが面倒になってしまいますよ.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.1.2 グループを分かりやすく分類 ― トピック (2003/10/21)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=topic%20gnus"
"MeadowMemo/グループを分かりやすく分類―トピック"へのコメント(無し)
検索全文Elisp

メールの振り分けや新聞を使うとグループがどんどん増えてしまい, 分けが分からなくなっ てしまいます. これを, 分かりやすく分ける仕組みがトピックです.

これを使うと例えばこんな画面になります.

[ Gnus -- 0 ]
  [ misc -- 0 ]
  [ WWW -- 0 ]
    [ Asahi -- 0 ]
 *          0/   62: nnshimbun+asahi:national            021010
    [ Nikkei -- 0 ]
    [ Comp -- 0 ]
 *          0/  314: nnshimbun+zdnet:comp                021010
    [ Bussiness -- 0 ]...
  [ mail -- 0 ]
          0/    9: nnml:archive                        021009
 *        0/  859: nnml:mail.inbox                     021010
          0/    1: nnml:mail.memo                      021009
 *        0/   32: nnml:mail.mine                      021010
          0/    1: nnml:mail.misc                      021008

使い方は簡単. グループバッファでtでトピックのオン/オフを切り替えできま す. 起動時からオンにするには

 
(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)

と, .gnus に追加.

基本的な使い方はこんな風.

  1. トピックの作成

    グループバッファでT nにより作成

  2. グループのコピー・移動

    適当なグループを選びT mで移動. #でグループにマークを付けておき, 一括 で移動することも可能. T #ならトピック内のグループにマークがつく.

    同じグループを複数のトピックに入れるために, T cでコピーもできます. コピー の削除はT D.

    #も面倒だという場合は, T M,T C. これで, 正規表現にマッチしたグ ループを移動/コピーできます.

  3. 分かりやすく整列

    適当なトピックを選びT mで移動. C-kで切り取り, C-yで張り付け, TABでインデント, M-TABでインデントの復帰も可能. 名前の変更はT r

SPCで展開, 折りたたみもでき, 非常に便利です.

57.1.2.1 未読メールのあるトピックを強調表示 (2003/10/21)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.1.2.1 未読メールのあるトピックを強調表示 (2003/10/21)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=topic%20unread"
"MeadowMemo/未読メールのあるトピックを強調表示"へのコメント(無し)
検索全文Elisp
要約

未読メッセージがあるグループを含むトピックを強調表示できる.

情報源

http://my.gnus.org/Lisp/1054742946

何が問題なのか?

Topic はいくつかのグループを 1 つにまとめることができ,便利なものです.

しかし,グループを非表示にしていると,未読メッセージがあるかどうかが少し分かりに くいです.

何ができるのか?

[ Gnus 103995 ] 
  [ News 90204 ] 
*        0/  114: nntp+lord.usenet-edu.net:fj.comp.lang.c++          030330
*        0/   13: nntp+lord.usenet-edu.net:fj.editor.emacs           030921
    [ WWW-News 2049 ] ...
    [ nntp 88155 ] ...
  [ spam 0 ] 
  [ ham 0 ] 
  [ mail 13683 ] ...

のように未読メッセージのあるトピックを強調できます.

設定方法

以下を.emacs に追加します.ただし,色は適当に変えてください.

 
(defface my-gnus-topic-empty-face
  '((t
     (:foreground "gray20")))
  "*my-Face")
(defface my-gnus-topic-face
  '((t
     (:bold t :foreground "SeaGreen1")))
  "*my-Face")

;; Use a user-defined spec for the part that should change colour
(setq gnus-topic-line-format "%i[ %u&topic-line; ] %v\n")

;; this corresponds to a topic line format of "%n %A"
(defun gnus-user-format-function-topic-line (dummy)
  (let ((topic-face (if (zerop total-number-of-articles)
                        ;; these are the two faces that we want to use
                        'my-gnus-topic-empty-face
                      'my-gnus-topic-face)))
    (propertize
     (format "%s %d" name total-number-of-articles)
     'face topic-face)))

詳しい使い方

普通に gnus を使うだけです.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.1.3 メールの全文検索 ― gnus-namazu (2003/07/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=gnus-namazu"
"MeadowMemo/メールの全文検索―gnus-namazu"へのコメント(無し)
検索全文Elisp

メールの全文検索が簡単にできます. 当然, namazu が使えるようになっている必要があ りますので, 52. 大量の文書の検索 ― namazu (2007/05/05)を参考に入れておいてください. namazu.el は不要です.

gnus-namazu は gnus に標準で付属してますので, 以下を.gnus に入れるだけで使えます.

 
(require 'gnus-namazu)
(gnus-namazu-insinuate)
(setq gnus-namazu-make-index-arguments
      (nconc
       (list "--all" "--mailnews")
       (when (or (and (boundp 'current-language-environment)
                      (string= "Japanese"
                               (symbol-value 'current-language-environment)))
                 (boundp 'MULE))
         (list "--indexing-lang=ja"))))

使い方は簡単. gnus を起動後, グループバッファでM-x gnus-namazu-create-indexとします. すると, インデックスを作ってくれます. この処 理はメールの量によりますが, 少し時間がかかります. 次回からは, M-x gnus-namazu-update-indexでアップデートすると, 追加されたもののみ処理を行います ので, 時間が短くてすみます.

検索は, グループバッファか概略バッファでC-c C-nです. 概略バッファから検索 すると, 今いるグループのみから検索, グループバッファから検索すると全グループから 検索になります. ただし, #でマークをつけていると, マークをつけたグループの みからの検索になります. また, この時, インデックスが 3 日以上古いものだと, 自動 的にM-x gnus-namazu-update-indexが行われます.

ただ,これはちょっと待たされるので

 
mknmz.bat --update=d:/home/dic/namazu/index/mail

という内容を namazu-mail.bat という風に拡張子を bat にして保存し,タスクなどで適 当な時間に走らせるといいでしょう (ディレクトリは適当に変えてください) .

検索した結果はまるで一つのグループのように表示されますので, 使い勝手は普通のグルー プと全く同じです. 検索がマッチした文字には色が付きますので, 非常に分かりやすいで す. この色は

 
(set-face-foreground 'gnus-namazu-query-highlight-face "black")
(set-face-background 'gnus-namazu-query-highlight-face "palevioletred2")

のように変更できます.

インデックスの場所と更新間隔の変更は

 
(setq gnus-namazu-index-update-interval 86400) ;; 1day = 86400sec
(setq gnus-namazu-index-directories
      (list (expand-file-name "~/dic/namazu/index/mail")))

で変更できます.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.1.4 メールアドレスやヘッダの使い分け (2004/12/19)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=mailaddress%20group"
"MeadowMemo/メールアドレスやヘッダの使い分け"へのコメント(無し)
検索全文Elisp

設定例を見れば使い方は分かるでしょうか? こんな風にすると、グループ別にヘッダや本 文を切り替えることができます。変数だけではなく、関数も可能なので、時間でヘッダを 切り替えることも可能です。

 
(setq gnus-posting-styles
      '(
        ;; Default
        (".*"
         (name "my name")
         (address "taro@mail.ne.jp")
         )

        ("^nnml:mail.private"
         (address "hanako@zzz.com"))

        ("^nnml:mail.error"
         (address "test@zz.co.jp")
         (To "where@zzz.com")
         (subject "定期連絡です")
         (body "You are fired.\n\nSincerely")
         (Reply-to "a man < support@zzz.org >")
         (Sender "zzz@zzz.or.jp")
         )

        ("^fj.test"
         (name "試験 投稿")
         (address "mk@test.node")
         (organization "流量をふやしてごめんね")
         (signature-file "~/.signature")
         )))

これは,カスタマイズでも設定できます.M-x customize-option RET gnus-posting-styles RET として設定します.例えば,以下のように設定すると, 「your@mail.com」に対して返信する時には,「my@mail.com」のメールアドレスを使う ことになります.

INS DEL Cons-cell:
      Choice: Value Menu List:
      header
      Header: from
      Regexp: your@mail.com
      Repeat:
      INS DEL List:
             Choice: Value Menu Header: From
             Choice: Value Menu String: Name <my@mail.com>
      INS

もちろん,以下のようにグループ名に対してアドレスを設定することもできます.

INS DEL Cons-cell:
      Choice: Value Menu Regexp: ^nnml:mail.book.*
      Repeat:
      INS DEL List:
             Choice: Value Menu address
             Choice: Value Menu String: my@mail.com
      INS

グループパラメータとして

設定したいグループにカーソルを合わせ G c とします.そして,「Posting style」 を設定します.基本的には gnus-posting-styles と同じように設定します.

チェックボックス Posting style: Value Menu Repeat:
    INS DEL List:
                Type: Value Menu name
                Aki
    INS DEL List:
                Type: Value Menu address
                my@mail.com
    INS
post style. More



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.1.5 グループパラメータ − グループ毎に設定 (2004/12/19)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=group%20parameter"
"MeadowMemo/グループパラメータ−グループ毎に設定"へのコメント(無し)
検索全文Elisp

gnus にはスコアファイルや自動削除機能など様々な機能があります。しかし、いつでも それらの機能が有効になっていると非常に不便です。

例えばスコアファイルは指定した条件に合うメールやニュースを自動で既読にしてくれま す.しかし,条件に合うかどうかを調べるために,多くのメールやニュースがあるグルー プでは時間がかかってしまいます.

そこで, gnus にはグループ毎に設定を行う機能があります.

使い方は簡単で,グループ名のところにカーソルを持っていき,G p とします.そ うすると,新たなバッファができます.デフォルトのままなら nil となってるので,こ れを消して,設定を書いていきます.

ただし,設定の書き方は通常の Lisp とは異なり

 
((auto-expire . t)
 (expiry-wait . 3)
 (gnus-use-scoring nil))

という風に設定します.

この例だと,上の 2 行はグループパラメータ用に用意されている変数で,「 (変数 . 値) 」のように設定します.グループパラメータ用の変数についてはヘルプで確認してくださ い.以下簡単に紹介しておきます.

最後のものは .gnus などで設定する変数で,この場合には 「. 」 は使いません.この 例だと

 
(setq gnus-use-scoring nil)

と同じことで,このグループではスコアの機能を利用しないことを意味しています.

G p の画面では設定しにくいという場合には G c とすると,カスタマイズ の画面で設定できるので,いくらか簡単にできると思います.

さらに,複数のグループについて設定したい時には,トピックにパラメータを設定しまう と楽です.方法は同じで,カーソルをトピック名に合わせて G pG c と するだけです.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.1.6 メールでスケジュール管理 ― mhc (2003/03/07)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=mhc"
"MeadowMemo/メールでスケジュール管理―mhc"へのコメント(無し)
検索全文Elisp

メールで会議や飲み会の予定が来る人だと,その度に紙へ書き取ったりと面倒なものです. ましてや,その記事を探そうと思うと,どこに振り分けたか考えて,フォルダを漁りと, 非常に面倒です.

こんなことしなくても,メールをもとに,スケジュールを作成できたら便利だと思いませ んか?

それを実現するのが mhc です.mhc のスケジュール一覧のように,スケ ジュールの一覧が可能です.さらに,そのメールも簡単に読むことができます.

mhc はメールをスケジューラとして使うものですので, MUA が必要です.対応している MUA は Mew , Wanderlust , Gnus , cmail です.これらのどれかが動いている必要があります. ただし,ここでの説明は Gnus のみです.

また, mhc は Palm や Outlook との連携を取ることもできますが,ここでは紹介しません.そ れらについては, 三好さんのペー ジが参考になるでしょう.

さて,まずはインストール方法です.MHC の公式 サイトから MHC をダウンロードします.最新開発版スナップをダウンロードします.

そして,解凍後, bash を起動し以下のようにします.

cd mhc-current-snap20030224/emacs
make EMACS=meadow
make EMACS=meadow install

そうすると, Meadow2/site-lisp/mhc にインストールされます.

次に,.emacs にを追加します.最初の 2 行だけで,使うことができます. mhc-face-effect-alist は文字の色設定です.適当に変更してください.

 
(autoload 'mhc-gnus-setup "mhc-gnus")
(add-hook 'gnus-startup-hook 'mhc-gnus-setup)
(setq mhc-face-effect-alist
      ;;             fg      bg        bold  talic  ul
      '((today    . (nil   "gray24"    nil   nil    nil))
        (busy     . ("SkyBlue" nil      t     nil    nil))
        (saturday . ("Blue"   nil      nil   nil    nil))
        (sunday   . ("Red"    nil      nil   nil    nil))))

これで,普通にメールを読んで,これをスケジュールに登録したいと思ったら,C-c .|とします.そうすると,メールから日時などを拾ってくれます.間違っているような ら,手入力で編集していきます.

そうすると,最後にメールを書くような画面になります.本文を必要があれば修正し, C-c C-cで登録します.

これで,このメールはスケジュールに登録されました. gnus の画面でC-c ..とする と,スケジュール一覧が表示されます.後は普通の gnus と同じように,メールを読むこと ができます.

途中で Category の入力がありますが, Todo にしておくと,その日まで何日と出るように なります.日付に関しては,スペースで区切れば複数の日付を入れることができます.

スケジュールの画面では,C-c . nC-c . pで次/前の月へ,C-c . g で指定月へ移動,C-c . eで新規にスケジュールを作成,C-c . mでスケジュー ル修正,C-c . dでスケジュールを削除ぐらいで,一通り使うことができます.

詳しいことは 00usage.jis に書いてありますので,参照してください.

57.1.6.1 mhc を快適にしよう (2003/04/03)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.1.6.1 mhc を快適にしよう (2003/04/03)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=mhc%20useful"
"MeadowMemo/mhcを快適にしよう"へのコメント(無し)
検索全文Elisp

個人的に使っている設定です.役に立つかどうかは,,,

何をするものか.

         [X]02 年下期打ち上げ [いつもの店]

このような Todo があった時に,この行でyとすると,未終了にしてくれます.逆に 未終了のものは終了にしてくれます.これが mhc-todo-set-toggle .

もう一つは,カーソルキーでの移動時にバッファの先頭または終了まで来たら,前/次の 月に移動してくれるものです.

私は sane-previous-line と sane-next-line を使ってますので,こんなアドバイスですが, 通常は previous-line と next-line でしょうか.必要に応じて編集してください.

 
(defun mhc-todo-set-toggle ()
  (interactive)
  (let ((pt (current-line)))
    (save-excursion
      (beginning-of-line)
      (if (re-search-forward "\\[X\\]" (line-end-position) t)
          (mhc-todo-set-as-not-done)
        (if (re-search-forward "\\[ \\]" (line-end-position) t)
            (mhc-todo-set-as-done)
          ()
          )))
    (goto-char (point-min))
    (forward-line (- pt 1))
    ))

(eval-after-load "mhc"
  '(progn
     (define-key mhc-mode-map "y" 'mhc-todo-set-toggle)

     (defadvice sane-previous-line
       (around mhc-goto-prev-month activate)
       (if (and (eq major-mode 'gnus-summary-mode)
                mhc-mode
                mhc-gnus/mhc-is-running
                )
           (if (= (point-min)
                  (save-excursion
                    (beginning-of-line)
                    (point)))
               (progn
                 (let ((buf (current-buffer)))
                   (mhc-goto-prev-month 1)
                   (goto-char (point-max))
                   (forward-line -1)
                   (kill-buffer buf)
                   ))
             ad-do-it)
         ad-do-it))

     (defadvice sane-next-line
       (around before-month activate)
       (if (and
            mhc-mode
            (eq major-mode 'gnus-summary-mode)
            mhc-gnus/mhc-is-running
            )
           (if (= (point-max)
                  (save-excursion
                    (end-of-line)
                    (point)))
               (progn
                 (let ((buf (current-buffer)))
                   (mhc-goto-next-month 1)
                   (goto-char (point-min))
                   (kill-buffer buf)))
             ad-do-it)
         ad-do-it))
     ))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.2 メールの作成 (2003/11/24)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=make%20message"
"MeadowMemo/メールの作成"へのコメント(無し)
検索全文Elisp

メールの作成に関連するものを紹介する予定です. シグネチャ管理など.

57.2.1 HTML メールの作成 (2003/07/20)  
57.2.2 一行の文字数を指定する (2003/07/20)  
57.2.3 シグネチャ挿入&管理ソフト - c-sig (2003/07/20)  
57.2.4 メールの引用 - xcite (2003/07/20)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.2.1 HTML メールの作成 (2003/07/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=html%20message"
"MeadowMemo/HTMLメールの作成"へのコメント(無し)
検索全文Elisp

HTML メールって無駄ですよね. 見るのにちょっと時間がかかるし, HTML メールで見たか らといって対して変わりはないし. それでも, 作りたいですか?

gnus でも一応作れます.

作り方はメールの作成時にメニュー:MIME-Edit → Insert Text (C-c C-x t) とし て, html を選択します. すると,

--[[text/html]]

というのが出てきます. この後に続けて, 手でタグを書いていけば HTML メールが書けま す. 確認はメニュー:MIME-Edit → Preview Message (C-c C-x p) でできます. 確 認の終了はqです.

画像を入れるのはどうやるんだろう. . .

ちょっと遊ぶのには楽しいですよ

w3m で見た限りでは, <html><body>はなしで, いきなり<center></center>などを書いて も表示してくれるようです. IE コンポーネントを利用したタイプがどう表示するかは分 かりません.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.2.2 一行の文字数を指定する (2003/07/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=fill%20column%20gnus"
"MeadowMemo/一行の文字数を指定する"へのコメント(無し)
検索全文Elisp

メールやニュースでは一行の文字数を 70 文字程度にするのがマナーです. しかし, 手で いちいち改行するのは面倒だし, 改行したものを編集すると, また手で改行をやり直さな いといけません.

そこで, こんな設定を入れておきます. こうしておくと, 70 文字で自動的に改行されま す. 編集して改行が変になったら, M-qとするとその段落の改行を正しく直してく れます. もちろん, 行頭の引用符もちゃんとつけ直してくれますよ. ○○さん>という風 に名前があっても大丈夫です.

 
(add-hook 'message-setup-hook
          (lambda ()
            (set-fill-column 70)
            (abbrev-mode 1)
            (turn-on-auto-fill)
            (auto-fill-mode 1)
}            (setq adaptive-fill-first-line-regexp
                  "[ \t]*\\([-a-z0-9A-Z]\\|\\cj\\)*>+[ \t;#]*\\|[ \t;#]*"
                  adaptive-fill-regexp
                  "[ \t]*\\([-a-z0-9A-Z]\\|\\cj\\)*>+[ \t;#]*\\|[ \t;#]*")
            ))



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.2.3 シグネチャ挿入&管理ソフト - c-sig (2003/07/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=c-sig"
"MeadowMemo/シグネチャ挿入管理ソフト-c-sig"へのコメント(無し)
検索全文Elisp

メールアドレスが変わった時, シグネチャのメールアドレスはどうやって変更してますか? まさか, 手でしてますか?c-sig なら, そんな面倒な手間はいりません. さらに, 普通の メールソフトと違って, 時間毎に変わるシグネチャなども簡単に作れてしまう, すばらし いソフトです,

まずは, 附属マニュアルより引用

c-sig とはなんでしょう?c-sig も最初はただの「 signature の選択挿入する lisp 」でした。しかし「あんなこともしたい」、「こんなこともしたい」といろいろな 人の意見を採り入れているうちに「ウルトラ・スーパー・デラックスな signature の挿 入プログラム」になってしまいました。

http://www.threeweb.ad.jp/~kshibata/c-sig/から手に入ります.

解凍後, ロードパスの通ったところへ置き, 以下を.emacs へ追加すれば使えます

 
(autoload 'add-signature "c-sig" "c-sig" t)
(autoload 'delete-signature "c-sig" "c-sig" t)
(autoload 'insert-signature-eref "c-sig" "c-sig" t)
(autoload 'insert-signature-automatically "c-sig" "c-sig" t)
(autoload 'insert-signature-randomly "c-sig" "c-sig" t)
(setq sig-replace-string t)

(setq sig-replace-string-file (expand-file-name "~/data/.signature.replace"))
(setq sig-alist-file (expand-file-name "~/data/.signature.alist"))
(random t)

M-x add-signatureでシグネチャを作成し, C-c C-cで名前をつけて保存. メー ルを書く時に, M-x insert-signature-erefでシグネチャを挿入します. M-x insert-signature-erefは面倒なので,

 
(add-hook 'message-setup-hook
          (lambda ()
            (local-set-key "\C-c\C-i" 'insert-signature-eref) ;; c-sig
            ))

という風にキーバインドを割り当てておくといいでしょう.

シグネチャが複数あると, M-x insert-signature-erefに続けてnpで選択できます. qで中止, RETで挿入になります. この時, c-sig は To を自動的に調べ, 挿入したシグネチャを記憶します. そのため, 次からはM-x insert-signature-eref RETで最適なシグネチャが挿入できます.

挿入したいシグネチャが決まっているなら, sig-alist-fileで設定したファイル (上の例では~/data/.signature.alist) を開き, (setq sig-regexp-alist nil) となって いるのを

 
(setq sig-regexp-alist
      '(("To"
         ("jp$" . "Japanese")
         ("com$" . "English"))
        ("Newsgroups"
         ("^fj" . "Japanese")
         ("^comp" . "English"))))

という風に変えます. Japanese とか English となっているのはシグネチャの名前ですの で, 作成時の名前に変えてください. こうしておくと, そのシグネチャが選ばれるように なります.

57.2.3.1 signature 内の文字列の自動変換 (2003/07/20)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.2.3.1 signature 内の文字列の自動変換 (2003/07/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=replace%20c-sig"
"MeadowMemo/signature内の文字列の自動変換"へのコメント(無し)
検索全文Elisp

シグネチャが増えてくると, 所属やメールアドレスをいちいち変えるのは面倒です. そこ で, シグネチャを作成する時にちょっと工夫をすると, 非常に便利になります.

まず, sig-replace-string-fileに設定したファイル (上の例だと, ~/data/.signature.replace) を作成し, こんな風に書いてみましょう.

 
(defun sig-write-time ()
      (cond
      (t (current-time-string))))
(setq sig-replace-list
      '(
        ("%%mail%%" ("my@mail.ne.jp"))
        ("%%name%%" ("名前"))
        ("%%affiliation%%" ("所属"))
        ("%%url%%" ("http://www.bookshelf.jp/"))
        ("%%line%%" ("------------------------------------------------------------"))
        ("%%time%%" sig-write-time)
        ))

そして,

 
%%line%%
%%name%% @ %%affiliation%%
mail: %%mail%%
url: %%url%%
このメールは %%time%% に書きました
%%line%%

こんなシグネチャを作成します. すると, これを挿入する時に c-sig は, .signature.replace を調べ変換してくれます. 結果,

 
------------------------------------------------------------
名前 @ 所属
mail: my@mail.ne.jp
url: http://www.bookshelf.jp/
このメールは Thu Nov 07 22:02:36 2002 に書きました
------------------------------------------------------------

となって挿入されます. これなら, .signature.replace を変えるだけで, すべてのシグ ネチャを変更できます. しかも, .signature.replace には関数も書くことができま す. 上の例では時間を表示していますが, 時間によってメッセージを変えることもできま す (この例は附属のマニュアルにのっています).

また, 上の例では候補が一つでしたが,

 
(setq sig-replace-list
      '(
        ("%%comment%%"
             ("コメント 1" "コメント 2" "コメント 3"
             ))
        ))

という風に, 複数指定することもできます. こうしておくと, シグネチャの挿入時にどれ かがランダムに選ばれます.

たかがシグネチャ. だけど, ここまでカスタマイズができてしまう. これが, Meadow の 魅力の 1 つなのです.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.2.4 メールの引用 - xcite (2003/07/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=xcite"
"MeadowMemo/メールの引用-xcite"へのコメント(無し)
検索全文Elisp

メールの引用もカスタマイズしてしまいましょう.

http://www.gentei.org/~yuuji/software/xcite.elから入手できます.

設定サンプル

 
(require 'xcite)
(autoload 'xcite "xcite" "Exciting cite" t)
(autoload 'xcite-yank-cur-msg "xcite" "Exciting cite" t)
(add-hook 'mail-citation-hook 'xcite-yank-cur-msg)
(setq message-cite-function 'xcite-yank-cur-msg)

(setq message-cite-function 'xcite-indent-citation)

;;ここで, 引用文を作ります. ニュースとメールで使い分けています
;; ng が t ならニュースになります
(defun xcite-akihisa-header ()
  (if ng
      (format "In article %s\n    %s %s writes:\n"
              msgid id (if handle (concat "(" handle ")") ""))
    (format ">>> In %s \n>>> %s %s wrote\n"
            subject
            (if (string< "" tag) (concat " [" tag "] = ") "")
            (if handle (concat handle) ""))
    )
  )
(setq xcite:insert-header-function 'xcite-akihisa-header)

これでメールを引用すると

>>> In サブジェクト
>>>  [佐藤] =  "satou nanigasi" wrote

という風になります

引用も便利にするために,

 
(add-hook 'message-setup-hook
          (lambda ()
            (local-set-key "\C-c\C-y" 'xcite-yank-cur-msg) ;; x-cite
            ))

という風にキーバインドを割り当てておきます. これで, メールの作成時に, C-c C-yで引用できます. メールの作成中に, gnus で違うメールを表示しC-c C-yとす ると, 今表示しているメールも引用できます. メールを書いてて, あのメールも引用した いなという時に非常に便利です.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.3 メールの送信 ― 一時保存, 遅延配送 (2003/11/24)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=send%20message"
"MeadowMemo/メールの送信―一時保存,遅延配送"へのコメント(無し)
検索全文Elisp

ここでは, gnus でメールの送信を便利に行う機能を紹介します.

57.3.1 一時保存 ― 書きかけのメールを保存 (2003/07/20)  
57.3.2 遅延配送 ― 指定した時まで送信を待つ (2003/07/20)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.3.1 一時保存 ― 書きかけのメールを保存 (2003/07/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=draft%20gnus"
"MeadowMemo/一時保存―書きかけのメールを保存"へのコメント(無し)
検索全文Elisp

途中まで書いたけど, 完成はしていない. だけど, 捨てるのは嫌という時に便利な機能で す. 使い方は簡単で, 送信時にC-c C-dとするだけです.

再編集は draft グループに入り, D eです. メニューからもできます. 編集後, C-c C-cで送信, C-c C-dで再度, 一時保存ができます. 編集せずに送信する なら, D Sでできます. 自分宛てにメールを書き, メニューでいろいろいじれば, 使い方が分かってくると思います.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.3.2 遅延配送 ― 指定した時まで送信を待つ (2003/07/20)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=delayed%20gnus"
"MeadowMemo/遅延配送―指定した時まで送信を待つ"へのコメント(無し)
検索全文Elisp

普通, メールを書き送信を行うと通常はすぐに送信されます. gnus-agent を使っている と, 送信処理を行った時に送信されます.

しかし, 夜中に携帯宛てにメールを出すのは忍びないということもあります. かといって, 一時保存なり後で書こうと思っていると忘れてしまう. そんな時に便利な機能です.

この機能は指定した時まで送信を行わず, 指定した時間以降に送信処理を行った時に送信 する機能です. 指定した時間に勝手に送るものではなく, 送信を行うのはあくまでユーザ が送信処理を行った時です.

使うためには, まず.gnus に以下を追加します

 
(gnus-delay-initialize)

次に, サーバを追加します. gnus のサーババッファへ入り, aを押します. その後, nndraft と入力し, delayed と入力します. これで完了です.

一度, テストのために適当なメールを自分宛てに書いてみましょう. メールの書き方は通 常と同じです. 違うのは送信時にC-c C-jとすることです. この直後にグループバッ ファでgとして送受信を行ってください. そうすると,

1/    0: nndraft:delayed                     021029

という風に delayed グループにメッセージが追加されます. nndraft:delayed が出でこ なければ, 再度サーババッファに入り, {nndraft:delayed}でRETで入ります. そう すると,

 K      1: delayed

という行がありますので, カーソルをこのグループにあわせuを押します. そうす ると, 先頭の K が消えて講読されます. これで, グループバッファに戻ると, nndraft:delayed が追加されます.

 Target date (YYYY-MM-DD) or length of delay (units in [mhdwMY]): 

と聞かれます. とりあえずテストなので 1m (1 分後) としましょう. で, 1 分後, グルー プバッファでgとし, 送受信を行うと, delayed に指定したメールも送信されます.

1m の他に指定できるのは日 (2003-01-01 など) か時間 (22:30 など), 現在からのどれ だけ経ったら送信するか (1h など) です.

日を指定すると, その日の 8 時以降に送信を行うと送信されます. この時間は以下のよ うに指定できます

 
(setq gnus-delay-default-hour 10)

現在からのどれだけ経ったら送信するかは数字と記号で指定します. 記号は m (分), h (時間), d (日), w (週), M (月=30 日), Y (年=365 日) が指定できます. ただし, 指定 できるのは 1 個のみなので, 30m1h (1 時間 30 分後) のような指定はできません (ソー スをちょっといじればできますが, , ), .

後, 今日の時間も指定できます. 22:10 のように指定が可能です.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.4 メールの表示 (2003/10/08)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=view%20mail"
"MeadowMemo/メールの表示"へのコメント(無し)
検索全文Elisp

ここではメールの表示関連について説明します.

57.4.1 メールに顔を表示 − x-face (2003/10/08)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.4.1 メールに顔を表示 − x-face (2003/10/08)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=xface"
"MeadowMemo/メールに顔を表示−x-face"へのコメント(無し)
検索全文Elisp

この設定は Meadow 1.99 以降のみに有効です.それ以前のバージョンでは使うパッ ケージが異なります.古い Emacs 用の説明はここではしません.

紹介している設定は gnus 用の設定のみですが, x-face-e21 は, cmail, emh, mew, mh-e, rmail, vm, wanderlust で使うことができます.設定は,ファイルの先頭にあるので,そ れを読んでください.

まずは,X-Face を見てみてください.メールに 顔が表示されていることが分かりますね.これが, x-face です.最初のころは, gnus や mew などしか対応しておらず,マニアのお遊びだったのですが,最近では Windows や Mac のメールソフトにも x-face に対応したものが出てきました.ぜひ表示できるように しましょう.

必要なものは compface/uncompface と x-face-e21.el.gz です.

まず, compface/uncompface は Cygwin に入っています. setup.exe を起動し,パッケー ジのリストのところで, Devel → compface がインストールされるように選択します. 後は, setup.exe はやってくれます.

インストールされているかどうかは, bash.exe で

 which uncompface
 which compface

として,何らかのパスが表示されれば問題ありません.

次に,x-face-e21.el.gz をダ ウンロードし,ロードパスの通ったところへ置きます.

次は設定です.私は今のところ表示しかしないので,以下のように x-face-e21 の設定を そのまま使っています.自分でもヘッダに入れたいという場合は x-face-image-file-directory と x-face-default-xbm-file を適当に変えてください.

x-face は表示のみという場合には,.gnus の設定の

 
       (add-hook 'gnus-message-setup-hook 'x-face-insert)

をコメントアウトしておいてください.

設定は,まず .emacs に以下を追加します.

 
(cond ((featurep 'xemacs)
       ;; settings for XEmacs.
       )
      ((= 21 emacs-major-version)
       ;;
       ;; You may have no need to use the following one line if you
       ;; always use T-gnus 6.14.5 revision 07 and later.
       (autoload 'x-face-decode-message-header "x-face-e21")
       ;;
       (autoload 'x-face-insert "x-face-e21" nil t)
       (autoload 'x-face-save "x-face-e21" nil t)
       (autoload 'x-face-show "x-face-e21" nil t)
       (autoload 'x-face-turn-off "x-face-e21")
       ;;
       ;; Show X-Face images when `x-face-insert' is done.
       (setq x-face-auto-image t)
       ;;
       ;; If you show X-Face images in the message sending buffer,
       ;; it is STRONGLY recommended that you remove images from the
       ;; buffer before sending a message.  However, it seems not to
       ;; be required for Gnusae so far.  The following lines are for
       ;; SEMI and Mew.  The latter can be put into .mew file instead.
       (add-hook 'mime-edit-translate-hook 'x-face-turn-off)
       (add-hook 'mew-make-message-hook 'x-face-turn-off))
      (t
       ;; settings for the other Emacsen.
       ))

そして,.gnus に

 
(cond ((featurep 'xemacs)
       ;;
       )
      ((= 21 emacs-major-version)
       ;;
       ;; You may have no need to use the following two lines if you
       ;; always use T-gnus 6.14.5 revision 07 and later.
       (setq gnus-article-x-face-command 'x-face-decode-message-header
             gnus-treat-display-xface 'head)
       ;;
       (eval-after-load "gnus-sum"
         '(define-key gnus-summary-mode-map "\C-x4s" 'x-face-save))
       (define-key message-mode-map "\C-x4i" 'x-face-insert)
       (define-key message-mode-map "\M-t" 'x-face-show)
       ;;
       ;; If a file name has no directory component, it should be
       ;; found in the directory which is specified by the option

       (setq x-face-image-file-directory "d:/home/image/x-faces")
       (setq x-face-default-xbm-file "book.xbm")
       ;;以下のフックがあると自動で x-face を挿入する
       (add-hook 'gnus-message-setup-hook 'x-face-insert)
       ;;
       ;; Uncomment the following line if you would like to show gray
       ;; X-Faces using this program instead of the native function.
       ;;
       ;;(setq gnus-treat-display-grey-xface nil)
       )
      (t
       ;;
       ))

を追加します.これで, x-face の表示ができます.また,指定した x-face があれば, メールを書く時に挿入してくれます.

x-face の作成方法などは X-Face を参考にどうぞ.

基本的には 48 × 48 のビットマップを作成し,それを xbm に変換すれば出来上がりです.

絵心が欲しい...



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.5 メールの振り分け (2004/01/24)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=mail%20split"
"MeadowMemo/メールの振り分け"へのコメント(無し)
検索全文Elisp

メールの振り分け関連の使い方です.

57.5.1 SPAM を読みたくない (2004/01/24)  
57.5.2 spam-stat を使いこなす (2004/01/24)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.5.1 SPAM を読みたくない (2004/01/24)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=spam-stat"
"MeadowMemo/SPAMを読みたくない"へのコメント(無し)
検索全文Elisp

毎日,毎日送られてくる SPAM は読みたくないですよね.

そこで,その SPAM を読まずに済むようにいろいろな方法が考えられています.しかし, 今までの方法では,送信者リストなどを用意する必要がありました.そのため, SPAM を 判別するデータが古くなってしまうということがあります.しかも,常に最新の情報に合 わせてメンテナンスをすることを欠かせません.これは非常に面倒な上に,苦労の割には 判断を誤ることが多いものです.

そこで, gnus には spam-stat という仕組みがあります.これは,受け取った SPAM か ら SPAM を判別するための情報を探し利用しようというものです.

そのために,まず SPAM だけのグループと SPAM の入っていないグループを作る必要があ ります. SPAM だけのグループは,グループバッファでG mとし,「 mail.spam 」 と入力します.メソッドは「 nnml 」を選択しておきます.「 mail.spam 」以外のグルー プにする場合は,以下のような設定を.gnus に追加しておきます.

 
(setq spam-stat-split-fancy-spam-group "mail.junk")

そして,そのグループに SPAM を移動 (概略バッファでB m) させます.

SPAM の入っていないグループは,適当なグループの SPAM を削除 (概略バッファで B DEL) しておきます.

これで,準備は完了です.次は, SPAM を判別するためのデータを作成します.以下の Lisp を*scratch*バッファへコピーして,一番最後の行でC-jを入力します.

 
(progn
  ;; Learn spam:
  (spam-stat-process-spam-directory "~/News/mail/spam")
  ;; Learn non-spam:
  (spam-stat-process-non-spam-directory "~/News/mail/inbox")
  ;; Repeat for any other non-spam group you need...
  ;; Reduce table size:
  (spam-stat-reduce-size)
  ;; Save table:
  (spam-stat-save)
  )

そうすると,ミニバッファに以下のような文字が表示されます.

 
Reading ~/News/mail/spam: 10%
Reading ~/News/mail/inbox: 10%
Wrote d:/home/.spam-stat.el

これで, SPAM を判別するためのファイルができました.

後は,.gnus に以下を追加します

 
(require 'spam)
(require 'spam-stat)
(setq spam-use-stat t)

そして,振り分け条件に,「 spam-stat-split-fancy 」を以下のように追加します.

 
(setq nnmail-split-methods 'nnmail-split-fancy
      nnmail-split-fancy
      '(|
        (: spam-split) ;; この行を追加
        (any "ccn@mailnews\\.ne\\.jp" "mail.news")
        (sub "Weekly Mag2" "mail.news")
        ;; すべての条件に合わないものは, mail.inbox へ
        "mail.inbox"))

これで, SPAM を SPAM グループへ振り分けてくれます.

実際に SPAM を振り分けられるかどうかは,解析させる SPAM に依存します.失敗することも 多くあるので,あまり信用しすぎない方がいいです.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.5.2 spam-stat を使いこなす (2004/01/24)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=spam-stat%20next"
"MeadowMemo/spam-statを使いこなす"へのコメント(無し)
検索全文Elisp
要約

spam-stat を使って通常グループから SPAM グループへメールを自動で移動したりできる

何が問題なのか?

spam-stat の設定でとりあえず spam-stat は利用できます.しかし,一度利用して みると予想以上に誤判断が多いことに気付きます.

spam-stat はメールから spam であればよくあるキーワードを学び,そのキーワードで spam かどうかを判断しています.しかし, spam でないメールからあまり学ばせていないと,誤 判断が多くなってしまうのです.

何ができるのか?

spam の学習を普通にメールを読んでマークをつけるだけでできるようになります.

前準備

まず,トピックを利用して, spam のみのグループ と,メーリングリストなどのグループに分けておきます.

ちなみに,私のは以下のようになっています. spam のみの spam トピック, ham のみの ham トピック,通常の mail のみの mail トピックといった具合.

[ Gnus 91105 ] 
1/    0: nnml:archive                                       040104
  [ PastMail 1622 ] ...
  [ News 80237 ] ...
  [ spam 0 ] 
0/  246: nnml:spam                                          040124
  [ ham 0 ] 
0/    1: nnml:mail.ham                                      040124
  [ mail 9245 ] ...

spam のみのトピック

まずは spam のみのトピックに対する設定です.ここでは以下のようにします.

まずは, spam トピックにカーソルを持っていき,G c とします.そうすると,こ のトピック以下のグループで有効となる設定を変更できます. spam トピックの下に ham のトピックがあると,そこでも有効になりますので注意してください.

ここで設定すべきは,以下の項目です

Customize the [topic parameters] for <spam> and press [done].

Parameters:
;; グループをどう扱うか?gnus-group-spam-classification-spam なら
;; spam のみのグループとなる
[X] Group contents spam/ham classification:
    Group contents classification for spam sorting: [Value Menu] gnus-group-spam-classification-spam
    Spam group classification (requires spam.el). [More]
The spam classification (spam, ham, or neither) of this group. [More]

;; グループを q で出た時になにをするか?
[X] Spam Summary Exit Processor: [Value Menu] Spam Summary Exit Processor Choices:
    Set:
    [X] Spam: Spam-stat
    [X] Ham: Spam-stat
Which spam or ham processors will be applied when the summary is exited.

;; グループを q で出た時になにをするか?
;; Respool で振り分け, Move to a group で指定したグループへ移動できる
[X] Destination for ham articles at summary exit from a spam group: [Value Menu] Respool
Where ham articles will go at summary exit from a spam group.

;; 普通のメールであると判断するマーク
[X] Ham mark choices:
    Set:
    [X] gnus-del-mark
        Mark used for del'd articles.
    [X] gnus-read-mark
        Mark used for read articles.
    [X] gnus-ticked-mark
        Mark used for ticked articles.
    [X] gnus-killed-mark
        Mark used for killed articles.
    [X] gnus-kill-file-mark
        Mark used for articles killed by kill files.
    [X] gnus-low-score-mark
        Mark used for articles with a low score.
Marks considered ham (positively not spam).  Such articles will be [More]

;; spam メールであると判断するマーク
[X] Spam mark choices:
    Set:
    [X] gnus-spam-mark
        Mark used for spam articles.
    [ ] gnus-killed-mark
        Mark used for killed articles.
    [ ] gnus-kill-file-mark
        Mark used for articles killed by kill files.
    [ ] gnus-low-score-mark
        Mark used for articles with a low score.
Marks considered spam. [More]

通常のグループ

基本的には上と同じで,以下のように設定します.

Customize the [topic parameters] for <mail> and press [done].

Parameters:
[X] Group contents spam/ham classification:
    Group contents classification for spam sorting: [Value Menu] gnus-group-spam-classification-ham
    The ham value for the spam group parameter (requires spam.el). [More]
The spam classification (spam, ham, or neither) of this group. [More]

[X] Spam Summary Exit Processor: [Value Menu] Spam Summary Exit Processor Choices:
    Set:
    [X] Spam: Spam-stat
    [X] Ham: Spam-stat
Which spam or ham processors will be applied when the summary is exited.

[X] Destination for spam-processed articles at summary exit: [Value Menu] Move to a group: nnml:spam
Where spam-processed articles will go at summary exit.

[X] Destination for ham articles at summary exit from a spam group: [Value Menu] Respool
Where ham articles will go at summary exit from a spam group.

Ham mark choices と Spam mark choices は同じです.

詳しい使い方

メールを普通に読みます.

通常のメールのみのグループに spam があれば,Sxとします.これで,q でグ ループを出る時に,そのメールを spam として学習し,「 Destination for spam-processed articles at summary exit 」で設定したグループに移動されます.

逆に spam のグループで通常のメールがあった場合,d などで印をつけておきます. q でグループを出る時に振り分け直されます.

もっと学習させたい

学習させるためには,学習させるマークを増やすのが簡単です.ということで,通常のグ ループでは Expire マークのついたメールも学習させてしまいましょう.

そのためには,通常のメールのみのグループで G p とします.

 
 (ham-marks
  (gnus-expirable-mark gnus-del-mark gnus-read-mark
   gnus-ticked-mark gnus-killed-mark gnus-kill-file-mark
    gnus-low-score-mark))

のように,「 gnus-expirable-mark 」を「 ham-marks 」に追加します.

これで, Expire マークも学習します.ただし,ちょっと時間がかかるかもしれませ ん...

効果は?

最初のうちは,誤判断が多いです.ここでやめずに,学習を続けさせていくと,ほぼ 100% に近いぐらいの精度で spam を分類してくれます.

キーワードで機械的に spam と判断させるとか,英語のメールは全部 spam 扱いとか,ブ ラックリストの活用とか,そんな面倒な方法はやめてしまいましょう.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.6 概略バッファの使い方 (2003/10/02)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=dev%20group%20buffer"
"MeadowMemo/概略バッファの使い方"へのコメント(無し)
検索全文Elisp

文字通り,概略バッファの使い方です.

57.6.1 スコア機能 (2003/10/02)  
57.6.2 スレッドをトグル表示する (2003/06/14)  



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.6.1 スコア機能 (2003/10/02)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=score%20gnus"
"MeadowMemo/スコア機能"へのコメント(無し)
検索全文Elisp

宣伝メールなど,読みたくないメールは誰にもあるもの.そんなメールを読まずに済む方 法です.

まずは,.gnus に

 
(setq gnus-use-scoring t)

を追加しておき, gnus を再起動します.

読みたくないメールが届いたら,グループバッファで L を押します.後は ? で確認しながら,条件を登録していきます.

こうしておくと,次回からその条件に一致したものは自動的に既読にしてくれます.

このスコアの設定はファイル名が SCORE ファイルで終わるファイルに保存されますので, 手で編集することもできます.ある程度,条件が増えてくると,大概の宣伝メールぐらい なら読まなくてすみます.

本文 (body) を選ぶと概略バッファが表示されるまで,ちょっと待たされるので,ヘッダ だけでやった方がいいです.



[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [表紙] [目次] [索引] [検索] [上端 / 下端] [?]

57.6.2 スレッドをトグル表示する (2003/06/14)

URL="http://www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow&node=gnus-toggle-thread"
"MeadowMemo/スレッドをトグル表示する"へのコメント(無し)
検索全文Elisp

大抵のメールソフトだとスレッドを表示したり,非表示にしたりすることができます.

この機能は, gnus にもあるのですが,M-C-s (gnus-summary-show-thread) で表示, M-C-h(gnus-summary-hide-thread) で非表示と非常に使いにくいものになっていま す.

そこで,.gnus に以下の設定を追加します.こうしておくと,概略表示時に TAB を入力するだけで,今カーソルがある場所のスレッドを展開したり,閉じたり することができます.

 
;;; http://mibai.tec.u-ryukyu.ac.jp/%7Eoshiro/Programs/elisp/gnus-toggle-thread.el
;;; gnus-toggle-thread.el: スレッドをトグル表示する
;;;;;;     [1999/06/05] OSHIRO Naoki.
;;;;;;

;;; 次の設定を ~/.emacs で行えば TAB キーでスレッドを開いたり閉じたり
;;; できまする〜.
;;;   -->gnus-summary-toggle-threads という関数もあるが,あれはスレッドの
;;;      表示自体を行うかプレーンで表示するかどうかの切替えなので,それとは
;;      ちょっと違う.

(add-hook 'gnus-summary-mode-hook
          '(lambda ()
             (defun gnus-summary-show/hide-thread ()
               (interactive)
               (let (end)
                 (save-excursion
                   (end-of-line)
                   (setq end (point)))
                 (if (save-excursion (search-forward "\^M" end t))
                     (gnus-summary-show-thread)
                   (gnus-summary-hide-thread))))
             (define-key gnus-summary-mode-map "\t" 'gnus-summary-show/hide-thread)))


[ << ] [ >> ]           [表紙] [目次] [索引] [検索] [上端 / 下端] [?]