Mewのインストール

私の日頃のサーバのメンテナンスのスタイルはWindows98のTeraTermProを使ってssh(telnetの暗号化版)でターゲットに繋いでキャラクタコンソールで何でも設定しちゃうパターンです。(そんな訳でXの事は何も分からず・・・hi)
Mule(Emacs)の中でshellを動かす快適さを覚えてしまうと、ついでにメイルも・・・と言う欲求が沸いてきます。(もっともWinでAlmailも捨てられないのですが。この辺が生粋のUNIX育ちじゃないもんで。)
そんな訳でMuleにMewを組み込んでみました。
ftp://ftp.mew.org/ に行って
im-130.tar.gz
mew-1.94.1.tar.gz
の二つを取ってきます。
tar zxvf im-130.tar.gz
./configure
make install
tar zxvf mew-1.94.1.tar.gz
cd mew-1.94.1

してから
Makefileの
ELISPDIR = /usr/local/share/mule/19.34/site-lisp
を自分の環境に合わせて変更。(上のは私のとこの例です。)
その後
make
su
make install
make install-info
でインストール作業は終わりです。
次に
$ imsetup
Where is your home directory? [/home/takamura]
Where is your Mail directory? [/home/takamura/Mail]
Where is your News directory? [/home/takamura/News]
What is your E-mail address(es)? [takamura@itoh.co.jp]
What kind of mail spool do you use? (local/POP/IMAP) [local] POP
What kind of POP authentication mechanism? (POP/APOP/RPOP) [POP]
What is your POP account name? [POPアカウント名]
What is your POP server name or IP address? [POPサーバのアドレス]
Do you want to preserve messages?
0 (delete immediately), -1 (preserve forever),
N > 0 (delete messages after N days) [0] -1
What is your SMTP server name or IP address? [SMTPサーバのアドレス]
Do you want to use value of Content-Length header for delimitation for local
mail? (Answer yes if your OS supports Content-Length header like Solaris 2.x,
otherwise answer no.) [no]
Does your system can detect write errors without fsync(2)? (You can answer yes,
if your home directory is on local file system, otherwise answer no.) [no]

~/.emacs に以下を追加
(autoload 'mew' "mew" nil t)
(autoload 'mew-send' "mew" nil t)
(setq mew-mail-domain-list '("your mail domain"))
(autoload 'mew-user-agent-compose "mew" nil t)
(if (boundp 'mail-user-agent)
(setq mail-user-agent 'mew-user-agent))
(if (fboundp 'define-mail-user-agent)
(define-mail-user-agent
'mew-user-agent
'mew-user-agent-compose
'mew-draft-send-letter
'mew-draft-kill
'mew-send-hook))
これでmuleを動かして
M-x mew
でMewが使えるようになりました。

■■重要■■
かんなを使ってる場合は
9.2 かんな,egg,SKKでSubject:に日本語が入力できない [Emacs 19.34ベースのMule 2.3]
かんな,eggの場合は,Muleにmew-X.XX/patches/canna.el-19.34.patchもしくはmew-X.XX/patches/egg.el-19.34.patchを当ててもう一度Muleをコンパイルし直してください. SKKの場合,開発版であるSKK10.xでは問題なく動作します.できればバージョンアップすることをお勧めします. SKKの開発版はSKK Depelopmentから入手できます.
かんな,egg,SKKいずれの場合でも,上記の対策を取れない場合は,
(setq mew-use-overlay-keymap nil)
とすることでも問題を回避することができます.
■■ここまで■■

と言うのが http://www.mew.org/FAQ/FAQ09/index-j.html#9.2
にありました。 http://www.mew.org/index-j.html を参考のこと。
そんな訳で
以下私の.emacs です。(ぜーんぶ雑誌の受け売り。自分で工夫したモノは全くありません。hi)
;; バックスペースが使えるようにする。
(global-set-key "\C-h" 'delete-backward-char)
;; かんなを使う。
(canna)
;; カーソルキーの動きを快適にするようなおまじない。
(defun move-to-window-prev-line (arg)
 "move window previous line"
(interactive "p")
(progn
(if (equal arg nil)
(setq arg 1))
(while (< 0 arg)
(let ((cc (current-column))
(ww (window-width))
(lw nil)
(wc (% (current-column) (1- (window-width)))))
(setq arg (1- arg))
(if (>= cc (1- ww))
(move-to-column (1+ (- cc ww)))
(progn
(previous-line 1)
(end-of-line 1)
(setq lw (current-column))
(if (>= lw ww)
(move-to-column (+ (* (/ lw (1- ww)) (1- ww)) wc))
(move-to-column wc))))))))
(defun my-next-line (arg)
(interactive "p")
(if (fboundp 'line-move)
(line-move arg)
(if (fboundp 'next-line-internal)
(next-line-internal arg)
(next-line arg))))
(defun move-to-window-next-line (arg)
"move window next line"
(interactive "p")
(progn
(if (equal arg nil)
(setq arg 1))
(while (< 0 arg)
(let ((cc (current-column))
(ww (window-width))
(lw nil)
(wc (% (current-column) (1- (window-width)))))
(setq arg (1- arg))
(end-of-line 1)
(setq lw (current-column))
(if (< (+ cc (1- ww)) lw)
(move-to-column (+ cc (1- ww)))
(progn
(my-next-line 1)
(move-to-column (% cc (1- ww)))))))))
(define-key global-map "\C-p" 'move-to-window-prev-line)
(define-key global-map "\C-n" 'move-to-window-next-line)
(define-key global-map [up] 'move-to-window-prev-line)
(define-key global-map [down] 'move-to-window-next-line)
;; Mewを使う。
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq mew-mail-domain-list '("your mail domain"))
(setq mew-use-overlay-keymap nil)
(autoload 'mew-user-agent-compose "mew" nil t)
(if (boundp 'mail-user-agent)
(setq mail-user-agent 'mew-user-agent))
(if (fboundp 'define-mail-user-agent)
(define-mail-user-agent
'mew-user-agent
'mew-user-agent-compose
'mew-draft-send-letter
'mew-draft-kill
'mew-send-hook))
;; 終わり