ほかの人の参考になるとは思えないのだが、折角なので(いったい何が折角なのだろう、と書いてる本人が言っちゃいけないのでしょう。だから言わない)。

#contents

*スパムフィルタ bsfilterを利用する 16 May 2007 [#ma119da5]
スパムメールがあまりにも多くなり、大事なメールを読み逃すことが何度がでてしまった。そこで、スパムフィルタを入れることにしました。既に、meadow + mew + stunnelで、SMTP over SSL、POP over SSLを実現しているのですが、多少いじることになりました。スパムフィルタは、bsfilterを使いました。

bsfilterがpop proxyとして働き、mew(メーラ)は、localhostにアクセスするということになります。

 POP3サーバ[ポート番号○○○] −SSL→ bsfilter[ポート番号10110]→ mew

で、bsfilterがスパムかどうか判定し、X-Spam-Flag: と X-Spam-Probability: を追加する。メーラはFlagを見て動作する。具体的には、.mew.elでは削除マークを付けるようになっています。

#hr

方法

基本的には、~
bsfilter / bayesian spam filter / ベイジアン スパム フィルタ ~
http://bsfilter.org/ (本家のホームページ)
と ~
「bsfilterをmew version 4から使う」 http://bsfilter.org/mew.html ~
に従いましたが、SMTP over SSLがあったり、そのほかいろいろあったので、違うところ複数(2つデハナイ)あり、です。

** bsfilterの取得 [#s8739359]
http://sourceforge.jp/projects/bsfilter/files/ より
bsfilter-1.0.15.tgz をダウンロード~
展開
 $ tar xvzpf bsfilter-1.0.15.tgz

** iconv.dllの取得とインストール [#pa5e8df1]
http://bsfilter.org/ (本家のホームページ)に従う。~
香り屋
http://www.kaoriya.net/#LIBICONV
より ~
iconv-1.9.1-dll.tar.bz2 ~
をダウンロードl~
展開
 $ tar xvjpf iconv-1.9.1-dll.tar.bz2

README_j.txtに従い、
iconv.dllをC:\WINDOWS\SYSTEMディレクトリにコピー

** bsfilterの設定 [#q1ad7a6e]
いろいろ設定はしてみたもののWindows用のバイナリbsfilter.exeとbsfilterw.exeがどうも上手く働いてくれないので、rubyで動かすことにする。読み仮名のルビじゃなくって、スクリプト言語のrubyよ。

+bsfilterというファイルを実行用のディレクトリ(C:\cygwin\usr\local\bin)にコピー
+バッチファイルを作る(MS-DOSと同じ:なつかしいというか情けないというか)
これをスタート メニュー/プログラム/スタートアップに入れ、起動時に働くようにする。いつも「DOS窓」があるのであまり気持ちよくないのですが、仕方ありません。~
- bsfilter.bat

 C:
 chdir C:\cygwin\usr\local\bin
 C:\cygwin\bin\ruby bsfilter --config-file "c:\cygwin\home\tomaru\.bsfilter\pop.conf"

-pop.confの中身 ~
これは、「bsfilterをWindows上で使ってみる」
http://nadmin.org/howto/bsfilter-on-windows.html
にあるものを利用し、変更した

 homedir  c:\cygwin\home\tomaru\.bsfilter
 ssl
 pop
 auto-update
 insert-flag
 insert-probability
 pop-server [pop3サーバ名]
 pop-port [POP over SSLとしてのポート番号]
 pop-proxy-port 10110
 pop-user [ユーザ名]

http://bsfilter.org/ (本家のホームページ)によると
- homedir:spam情報データベースが作られるディレクトリ
- ssl:POP over SSLを使用する
- pop:POP proxyとして動作させる
- auto-update:「メールがcleanかspamか判定し、その結果に基づいてメール中のtokenをデータベースに足し、確率データベースも更新する」と、要するに、mewからの情報を受け付けてくれるようにするためらしい
- insert-flag:ヘッダに、"X-Spam-Flag: Yes"か"X-Spam-Flag: No"を追加する
- insert-probability:ヘッダに、"X-Spam-Probability: number"を追加する
- pop-server:接続するpop3サーバ名
- pop-port:接続するpop3サーバのSSLとしてのポート番号。ふつうは110ではないはず
- pop-proxy-port:メーラからlocalhostのpop proxyに接続するポート番号
- pop-user:ユーザ名(.emacsに設定があれば、これはなくても動くかもしれません)


** .emacs の修正 [#g1d4b6b2]
 (setq mew-config-alist
    '(("default"
 ;       ("smtp-server" . "[SMTPサーバ名]")
 ; 上をコメントアウト16 May 2007
 ;       ("pop-server"  . "[POP3サーバ名]") 
 ; 上をコメントアウト16 May 2007
       ("pop-proxy-server"  . "localhost") ; 15 May 2007
       ("pop-proxy-port" . "10110") ; 15 May 2007
       ("pop-user"    . "[ユーザ名]")) ; 15 May 2007
      ))
 ; bsfilter用 15 May 2007
 ; bsfilter-1.0.15/mua/mew4/emacs.el(bsfilter-1.0.15.tgzを展開した中にある)よりコピー
 (setq mew-spam: "X-Spam-Flag:")

localhostのポート番号10110 = bsfilter からメールを受け取るように設定するのがミソ

** .mew.el に追加 [#s59bc643]
関係しそうなものは以前のものも書いておきます

 ;; SMTP サーバの設定 
 ; 参考 http://www.math.waseda.ac.jp/~norikazu/memo/mew-waseda-net.html
 (setq mew-smtp-ssl t) ; 02 March 2006
 (setq mew-smtp-ssl-port "465") ; 02 March 2006
 (setq mew-smtp-server "[SMTPサーバ名]") ; 16 May 2007
 (setq mew-smtp-user "[ユーザ名]") ; 16 May 2007
 (setq mew-smtp-auth-list '("PLAIN" "LOGIN" "CRAM-MD5" )) ; 16 May 2007
 ; POP over SSL, SMTP over SSLに対応させる
 ; 参考 http://www.math.waseda.ac.jp/~norikazu/memo/mew-waseda-net.html
 ;(setq mew-pop-ssl t) ; 02 March 2006 
 ;(setq mew-pop-ssl-port "995") ; 02 March 2006
 ; 上の2つをコメントアウト16 May 2007
 (setq mew-ssl-verify-level 0) ; 02 March 2006
 ; bsfilter用 15 May 2007
 ; bsfilter-1.0.15/mua/mew4/mew.el(bsfilter-1.0.15.tgzを展開した中にある)よりコピー
 ;; $Id: mew.el,v 1.3 2006/01/14 07:38:50 nabeken Exp $
 以下すべて(長いので省略)

これまでは、POP over SSLとSMTP over SSLが同じエージェント(?)と通信していたので問題なかったのですが、これからは、POPはbsfilterが、SMTPはmewがアクセスするので別ものとなってしまいます。そこで、メールの送信ができるように、SMTPサーバにもユーザ名とパスワードを教えてやるわけです。これは、メールサーバの設定によりいろいろと違うところがあるでしょう。本学では、POP before SMTPが使えるので、今迄はなにもせずによかったのですが、これからはSMTP authを使う、ということです。たぶん、これでいいのだと思う。

 (setq mew-smtp-auth-list '("PLAIN" "LOGIN" "CRAM-MD5" )) ~
は、デフォルトでは、mew-vars.elに
 (defcustom mew-smtp-auth-list '("CRAM-MD5" "PLAIN" "LOGIN")
  "*A list of SMTP AUTH methods in the preferred order.
 Currently, \"CRAM-MD5\", \"PLAIN\", and \"LOGIN\" can be used."
  :group 'mew-smtp
  :type '(repeat (choice (const "CRAM-MD5") (const "PLAIN") (const "LOGIN"))))
とあるように、"CRAM-MD5" "PLAIN" "LOGIN"の順なのですが、パスワードを入れるとMD5の暗号化がされていないと言われたので、PLAINを前に持ってきて対応した。

いくらか.emacsと.mew.elでの設定の重複やら混乱があるので、今回の修正も意味がないものが入ってしまったような気がする。

**使い方 [#xa8dac37]

mewでメールを読むと~
スパムメール(X-Spam-Flag: Yesのもの)は削除マークが付く

スパムメールに対しては、
 ls ← learn spam
非スパムメール(「ハム」)に対しては
 lh ← learn ham
とやって教えてやると覚えてくれる。

間違えて、試しのときに数百通(600以上だったような気が)受け取ってしまい、仕方なくすべてをスパムとハムを教えたら、その後は大変順調でした。
メールサーバにメールを残す設定にしておいたら、bsfilterはmewとは違うものと判断され(当然ですが)、pop3から全部取ってきてしまったわけです。


**Windows用のバイナリの不具合について [#gd06f237]
 SSL_CTX_new:: libarary has no ciphers
とのエラー。SSLが悪いというより、bsfilterのコードが古いか何かが原因のもよう。~
というのは、~
ネットワークプログラミングの基礎知識 >> SSL/TLS でアクセスしてみよう (1)~
http://x68000.q-e-d.net/~68user/net/ssl-1.html 
によると
 例えば SSL_library_init() を呼ばずに SSL_CTX_new() を呼ぶとエラーとな
 りますが、その際以下のようなメッセージが標準エラー出力に吐かれます。
とあるので。


*meadow + mewをstunnelで、SSL化する 13 Nov 2006 [#bbd18204]

本学では学外からのメールの送受信は「POPS,SMTPSのみ」になった。
ノートマシンなので学外であろうとなかろうと、SSLで通信するように設定

** stunnelのインストール [#q5930770]
stunnelをダウンロードする。~
なぜかstunnel ver. 4だと上手くいかないので、ver. 3を使う。~
-http://www.stunnel.org/download/binaries.html から、Windowsバイナリのver. 4とver.3の両方をダウンロード。
-まず、ver. 4をインストール。インストーラを叩くだけ。
-次に、ver. 3を「ver. 4のインストールされたディレクトリ」(なにも考えなければ、c:\Program Files\stunnel)にコピー。ファイル名をstunnel.exeに変える(ダウンロードしたものは、stunnel-3.**.exeのはず)

これで、openSSLとともにインストールができた

** mewの設定 [#ba5751d5]

.mew.elに下を追加

 ; stunnelがないと言われないために
 ; 参考 http://blog.so-net.ne.jp/SometimeBlue/2005-04-05
 (setq mew-prog-ssl "C:\\Program Files\\stunnel\\stunnel.exe") ; 02 March 2006
 ;; SMTP サーバの設定 
 ; 参考 http://www.math.waseda.ac.jp/~norikazu/memo/mew-waseda-net.html
 (setq mew-smtp-ssl t) ; 02 March 2006
 (setq mew-smtp-ssl-port "465") ; 02 March 2006




*2005年1月17日 (月) メビウスのインストールのメモ [#sb13d7fd]

とにかくインストールしたもの。ダウンロードした順 ≒ インストールした順設定など細かなことは後日記入予定

Dec 27 15:44 Firefox Setup 1.0.exe ← インストールはあとでした~
Dec 27 15:44 Thunderbird Setup 1.0.exe ← インストールはあとでした~
Dec 27 17:00 setup-ja.exe ← meadowのネットインストーラ~
Dec 27 17:21 setup.exe ← cygwinのネットインストーラ~
Dec 27 18:25 R~
Dec 27 18:27 ffftp~
Dec 27 18:33 Lhaca~
Dec 28 16:18 jpeg2ps~
Dec 28 18:35 ActivePerl~
Dec 28 20:50 skkime~
Dec 28 21:29 Microsoft Office ← これはCDからのインストール~
Dec 28 22:38 OOo~
Dec 28 22:42 weyes101.lzh~
Dec 29 02:50 rmail-mime-1.13.0~
Dec 29 05:08 cygwin-X~
Dec 29 13:26 lineno.sty~
Dec 29 13:07 yatex~
Dec 30 04:10 pLaTeX~
Jan 4 13:32 ispell~
Jan 5 09:49 mew~
Jan 7 22:33 ps-print.tar.gz~
Jan 10 18:49 AltIME~
Jan 10 13:01 w3m~
Jan 15 15:33 QuickTimeFullInstaller.exe~


*BDFフォントを使った日本語の表示 31 Dec 2004 [#w15c8216]

http://meadow.sourceforge.jp/cgi-bin/hiki.cgi?%C6%FC%CB%DC%B8%EC%A4%CB%B4%D8%A4%B9%A4%EB%BE%F0%CA%F3

BDFフォントを使った日本語の表示 Netinstall の intlfonts パッケージ

Netinstall の intlfonts パッケージを使うのが簡単でしょう。 Netinstall で intlfonts と misc パッケージを入れます。 .emacs には次の2行だけです。 default-frame-alist (initial-frame-alist) には好みによって他のパラメータもセットします。

 (setq bdf-use-intlfonts16 t)
 (setq default-frame-alist '((font . "intlfonts16")))

これだけで日本語だけではなく intlfonts の様々なフォントを表示できます。 C-h h (HELLO ファイル) の全てを表示できます。

* ps-print.tar.gz のインストール 09 Jan 2005 [#u733a027]

READMEに従う

展開 ~
make EMACS=meadow ~
すべての*.el*ファイルを c:/Mewdow/site-lispにコピー

; 09 January 2005 ~
; ps-print の READMEより ~
; ~
;If you have a Japanese PostScript printer, you can print ASCII,~
;Latin-1, and Japanese (JISX0208, and JISX0201-Kana) characters by: ~
; (setq ps-multibyte-buffer 'non-latin-printer) ~
; ~
;If you have a Korean PostScript printer, you can print ASCII, Latin-1, ~
;and Korean characters also by: ; (setq ps-multibyte-buffer 'non-latin-printer) ~
;But I didn't tested it. If you have a Korean PostScript printer, ~
;please verify it. ~
;~
;If you have intlfonts (version 1.1 or the later), you can print all~
;multibyte characters by using BDF fonts contained in intlfonts. To ~
;do that, you need the following settings:~

	(setq ps-multibyte-buffer 'bdf-font)

; ~
;If you have intlfonts version 1.2 or the later and want to print only ~
;Latin-1, Vietnamese, and Thai, your can print by Type1 fonts by this: ~
; ~
; (setq ps-multibyte-buffer 'type1)~
~
;ps-print.el より~
~
;On MS-DOS and MS-Windows systems, a string value is taken as the name ~
;of the printer device or port to which PostScript? files are written, ~
;provided `ps-lpr-command' is \"\". By default it is the same as ~
;`printer-name'~
; typical non-default settings would be \"LPT1\" to ~
;\"LPT3\" for parallel printers, or \"COM1\" to \"COM4\" or \"AUX\" for ~
;serial printers, or \"//hostname/printer\" for a shared network printer. ~
;You can also set it to a name of a file, in which case the output gets ~
;appended to that file. \(Note that `ps-print' package already has ~
;facilities for printing to a file, so you might as well use them instead ~
;of changing the setting of this variable.\) If you want to silently ~
;discard the printed output, set this to \"NUL\"."~
~
;(setq ps-lpr-command "c:/cygwin/home/tomaru/meadowprint.ps") ~
;ファイルを作ってからこのコマンドを書いても ~
;gsがエラーと言う……~
~
(setq printer-name "c:/cygwin/home/tomaru/meadowprint.ps")~
;ファイルなしで、M-x ps-print-bufferでOK~
~
;もしかして上手く行くかも ~
;(setq print-buffer ps-print-buffer)~

なぜか、ここまでインストールしたら、infoがふたつのディレクトリに分かれてしまった。meadowを再インストールし直してもだめ。しかたがないので、今読んでいるinfoのあるディレクトリにいろいろコピーして、「dir」を編集して読めるようにした。ふぅ

M-x ps-print-buffer~
または、~
mewでは#~
で、meadowprint.psが作成されるので、ghostview32で開いて印刷。~
このプリントのコマンドを続けて実行すると、meadowprint.psに追加して書いてしまうので、NG。一回ずつmeadowprint.psを消さなきゃならない。

*14 Jan 2005 ユニコードの設定 [#c0751a1c]

mule-ucsをネットインストール~
サンプルのdot.emacs.jaからとってきた下のコードを .emacs に入れた。

;; ;;; Mule-UCS の設定 ~
;; ;; ftp://ftp.m17n.org/pub/mule/Mule-UCS/ ~
;; ;; (set-language-environment) の前に設定します ~
(require 'un-define) ~
(setq bitmap-alterable-charset 'tibetan-1-column) ~
(require 'jisx0213)~

*ESS Emacs Speaks Statistics (Modified 13 Nov 2006) [#k20523df]

インスールは簡単~
http://stat.ethz.ch/ESS/downloads/ess/ 
から
ダウンロードして、解凍。site-lispの下に置く~
 tar xvzpf ess-5.3.3.tgz -C /cygdrive/c/meadow/site-lisp/
%%今回は ess というディレクトリ名に替えた(lispでは何だかわからないので)%%~
こちら http://noplans.org/~1gac/diary/200407.html#23_t7 も参考にした

Windowsの環境設定。 RのバイナリへのPathを追加~
コントロールパネル−システム−詳細設定−環境変数から

http://www.okada.jp.org/RWiki/index.php?ESSUsage ESS --- Emacs Speaks Statistics 使用方法

ESS には (i) R を Emacs から使う iESS モード,(ii) R スクリプト作成支援環境を提供する ESS[R] モード,(iii) R ヘルプから Example を実行したりできる help[R] モードがあります. ~
↑ iESS

R 起動 (M-x R)
~    複数の R を起動することが可能.

R 終了 (C-c C-q)
~   関連するバッファも全て消してくれる

最初からESSモードでemacsを起動する方法

-コマンドラインから
 $ emacs -f R &

コマンド履歴 (M-p, M-n) コマンド履歴の検索 (M-r, M-s) ヘルプ参照 (C-c C-v) オブジェクト一覧 (C-c C-x)

↑ ESS モード (R モード)

バッファから R へ直接コマンドを送る

- バッファ全体 (C-c C-b)
- 選択されている範囲(リージョン) (C-c C-r)
- 関数 (C-c C-f)
- 一行 (C-c C-j)

↑ ESS-help

help(foo) で開いたヘルプのバッファにおいて,Example の各行に対して l で,コンソールバッファにコピーかつ評価される.


|Today:&counter(today); |Yesterday:&counter(yesterday); |Total:&counter(); since 02 April 2006|

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS