2010年9月12日日曜日

Emacs仕事術(5)メールとWEB


このエントリーをはてなブックマークに追加


2010/11/26 修正

メールとWEBは仕事上必須なので使えるようにする。
必要なものは以下。cygwin環境無しで導入する。

■emacs-w3mはw3m.exeが必要になるので、以下から入手する。
ftp://ftp.jaist.ac.jp/pub/cygwin/release/w3m/w3m-0.5.1-2.tar.bz2

■emacs-w3m
http://emacs-w3m.namazu.org/index-ja.html

■APEL
http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/APEL/

■FLIM(LIMIT) 最新版FLIMに変更 → やっぱりLIMITに変更
http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/FLIM/
http://cvs.m17n.org/viewcvs/root/flim/?pathrev=limit-1_14

■SEMI
http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/SEMI/

■Wanderlust
http://www.gohome.org/wl/index.ja.html

C:\emacs\cygbin というディレクトリを作成し、Emacs起動時のバッチにパスを追記しておく。
ntemacs.bat
set HOME=c:\emacs\home
set LC_ALL=ja_JP.cp932
set LC_CTYPE=ja_JP.cp932
set LANG=ja_JP.cp932
set PATH=c:\emacs\bin
set PATH=%PATH%;c:\emacs\cygbin
c:\emacs\bin\runemacs.exe

次に順にソフトウェアを導入していく。


■ソースの取得
# cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login 
# cvs -z9 -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout apel
# cvs -z9 -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout -r flim-1_14 -d flim-1.14 flim
# cvs -z9 -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout -r limit-1_14 -d limit-1.14 flim
# cvs -z9 -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout -r semi-1_14 -d semi-1.14 semi
# cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout wanderlust

■ w3m
w3m.exeはコンパイル済みのcygwinバイナリを C:\emacs\cygbinへ配置しておく。
gnupackのページから見つけられる。
単体ではdllが足りず起動できないので、必要なものもc:\emacs\cygbinへ置いておくこと。
(単体でw3m.exeを起動しようとすると**.dllがないと警告してくるので言われたものを探してくれば良い)

■ APEL
公式から取得したファイルの中にmakeit.bat というファイルがあるので、
以下の部分を自分の環境に合わせて修正する。
makeit.bat
set PREFIX=c:\emacs
set EMACS=c:\emacs\bin\emacs.exe
set LISPDIR=c:\emacs\site-lisp
set DEFAULT_MAKE_ARG=
# c:\temp\apel> makeit.bat what-where
 → インストール先の確認
# c:\temp\apel> makeit.bat install

■ FLIM
最新版のFLIMでは以下は不要
limitを使う。

取得したファイルを展開するが、メール送信時にUTF-8が
うまくquoted-printableされないバグを解消するために以下を修正。
参考:http://d.hatena.ne.jp/kiwanami/20091103/1257243524
--- mel-q-ccl.el~ 2006-06-12 15:10:02 +0000
+++ mel-q-ccl.el 2008-04-03 06:33:51 +0000
@@ -893,7 +893,13 @@
   (defun quoted-printable-ccl-encode-region (start end)
     "Encode the region from START to END with quoted-printable encoding."
     (interactive "*r")
-    (decode-coding-region start end 'mel-ccl-quoted-printable-lf-lf-rev))
+    (save-excursion
+      (goto-char start)
+      (insert (prog1
+    (decode-coding-string
+     (string-as-unibyte (buffer-substring start end))
+     'mel-ccl-quoted-printable-lf-lf-rev)
+  (delete-region start end)))))

   (defun quoted-printable-ccl-insert-encoded-file (filename)
     "Encode contents of the file named as FILENAME, and insert it."

(Please annul the workaround defadvice I posted in the message:
 http://article.gmane.org/gmane.emacs.mime.japanese/672)

コンパイルしてインストールする。
# c:\emacs\bin\emacs -batch -q -no-site-file -l FLIM-MK -f compile-flim C:\emacs C:\emacs\site-lisp C:\emacs\site-lisp
# c:\emacs\bin\emacs -batch -q -no-site-file -l FLIM-MK -f install-flim C:\emacs C:\emacs\site-lisp C:\emacs\site-lisp

■ SEMI
こちらは取得したファイルを解凍して、以下のコマンドを実行するだけ。
# c:\emacs\bin\emacs -batch -q -no-site-file -l SEMI-MK -f compile-semi C:\emacs C:\emacs\site-lisp C:\emacs\site-lisp
# c:\emacs\bin\emacs -batch -q -no-site-file -l SEMI-MK -f install-semi C:\emacs C:\emacs\site-lisp C:\emacs\site-lisp

■ emacs-w3m
取得したファイルを展開し、以下を実行。
# c:\emacs\bin\emacs -batch -q -no-site-file -l w3mhack.el NONE -f w3mhack-nonunix-install

プリフィックスの与え方が分からず、c:\site-lispにインストールされてしまうため、
# c:\emacs\site-lispへ配置しなおしておく。

■ wanderlust
取得したファイルを解凍し、以下を実行。
# c:\emacs\bin\emacs -batch -q -no-site-file -l WL-MK -f compile-wl-package c:\emacs\site-lisp C:\emacs\etc\images\wl
# c:\emacs\bin\emacs -batch -l WL-MK -f check-wl c:\emacs\site-lisp C:\emacs\etc\images\wl
# c:\emacs\bin\emacs -batch -q -no-site-file -l WL-MK -f install-wl-package c:\emacs\site-lisp C:\emacs\etc\images\wl
# c:\emacs\bin\emacs -batch -q -no-site-file -l WL-MK -f wl-texinfo-format C:\emacs\info
# c:\emacs\bin\emacs -batch -q -no-site-file -l WL-MK -f install-wl-info C:\emacs\info

■ dot.emacs に以下を追記(WanderlustはPOP/IMAPによって設定方法が異なるのでドキュメントを参照のこと)
;; ------------------------------
;; emacs-w3m
;; ------------------------------
(require 'w3m-load)


;; ------------------------------
;; wanderlust
;; ------------------------------

(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-other-frame "wl" "Wanderlust on new frame." t)
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)

;; limitを使う場合、以下は不要
;; 日本語の添付ファイル名を正しく表示。これがないと化ける。
(defvar my-mime-filename-coding-system-for-decode
  '(iso-2022-jp japanese-shift-jis japanese-iso-8bit))
(defun my-mime-decode-filename (filename)
  (let ((rest (eword-decode-string filename)))
   (or (when (and my-mime-filename-coding-system-for-decode
                  (string= rest filename))
         (let ((dcs (mapcar (function coding-system-base)
                            (detect-coding-string filename))))
           (unless (memq 'emacs-mule dcs)
             (let ((pcs my-mime-filename-coding-system-for-decode))
               (while pcs
                 (if (memq (coding-system-base (car pcs)) dcs)
                     (setq rest (decode-coding-string filename (car pcs))
                           pcs nil)
                   (setq pcs (cdr pcs))))))))
       rest)))
(eval-after-load "mime"
 '(defadvice mime-entity-filename (after eword-decode-for-broken-MUA activate)
    "Decode encoded file name for BROKEN MUA."
    (when (stringp ad-return-value)
      (setq ad-return-value (my-mime-decode-filename ad-return-value)))))
(require 'std11)

;;; ファイル名が日本語の添付ファイルをエンコードする [semi-gnus-ja: 6046]
(eval-after-load "std11"
 '(defadvice std11-wrap-as-quoted-string 
    (before encode-string activate)
    "Encode a string."
    (require 'eword-encode)
    (ad-set-arg 0 (eword-encode-string (ad-get-arg 0)))))

; w3m でhtmlメールを表示
(require 'mime-w3m)

; メールディレクトリを指定
;(setq elmo-maildir-folder-path "~/Maildir")
(setq elmo-localdir-folder-path "~/Mail")
(setq wl-queue-folder "+queue")
(setq elmo-lost+found-folder "+lost+found")

; From: の設定
(setq wl-from "Name <your@mail.address.com>")

; (system-name) が FQDN を返さない場合、
; `wl-local-domain' にホスト名を除いたドメイン名を設定してください。
(setq wl-local-domain "your.domain.name.com")

; IMAP サーバの設定
(setq elmo-imap4-default-server "imap.servername.com")

; SMTP サーバの設定
(setq wl-smtp-posting-server "smpt.servername.com")

; IMAP サーバの認証方式の設定
(setq elmo-imap4-default-authenticate-type 'clear) ; 生パスワード
;(setq elmo-imap4-default-authenticate-type 'cram-md5) ; CRAM-MD5

; 日本語フォルダ対策
(setq elmo-imap4-use-modified-utf7 t)


; `wl-summary-goto-folder' の時に選択するデフォルトのフォルダ
(setq wl-default-folder "+inbox")

; 終了時に確認する
(setq wl-interactive-exit nil)

; メール送信時には確認する
(setq wl-interactive-send t)

; サマリモードの幅とヘッダ表示
(setq wl-summary-width nil)
(setq wl-summary-line-format "%n %1T%1P%1@ %M/%D(%W) %h:%m %-5S %t%[%25(%c %f%) %] %s")

; 非同期でチェックするように
(setq wl-folder-check-async t)

; 自動でBCCを付ける
(setq mail-self-blind t)
(setq wl-bcc "your@mail.address.com")

; 返信時のドラフトバッファをフル画面に
(setq wl-draft-reply-buffer-style 'full)

; メッセージバッファの非表示ヘッダの選択
;(setq wl-message-ignored-field-list '(".*"))

; 添付ファイルの保存先を変更する
(setq mime-save-directory "~/temp")

; 起動時にはオフライン状態にする
(setq wl-plugged nil)

; 大きいメッセージを送信時に分割しない
(setq mime-edit-split-message nil)

; メール送信時には確認する
(setq wl-interactive-send t)

; デフォルトのドラフトをローカルに
(setq wl-draft-folder "+draft")

;; 警告無しに開けるメールサイズの最大値(デフォルト:30K)
(setq elmo-message-fetch-threshold 1000000)

;; プリフェッチ時に確認を求めるメールサイズの最大値(デフォルト:30K)
(setq wl-prefetch-threshold 1000000)

; サマリモードでスレッド結合を使わない
; 'thread でスレッドモードに
; Tでトグル
(setq wl-summary-default-view 'sequence)

リスト遊び

リスト遊び

価格:1,260円(税込、送料別)