5. Mewをもっと便利に使いたい


【もくじに戻る】
5.1 複数あるシグネチャをきりかえて使いたい.
5.2 複数あるX-Face:をきりかえて使いたい.
5.3 引用記号を付けたい.
5.4 procmailで振り分けた新着メールをおいかけたい.
5.5 mh-biffで未読管理をしたい.
5.6 オフラインでメールを書きたい.
5.7 自分で出したメールの控えを残しておきたい.
5.8 定型文書を自動的に入れたい.
5.9 パスワードの入力を省きたい.
5.10 Newsgroup:やFollowup-To:で補完をかけたい.
5.11 別名(alias)を利用したい.
5.12 複数のサーバからメールを取りたい.
5.13 メールサーバにメールを残したままにしておきたい.
5.14 リプライをするときにCc:に自分のアドレスを入れたくない.
5.15 Mewにパッチを当てたい.

5.1 複数あるシグネチャをきりかえて使いたい.

【質問】
いつも同じシグネチャじゃおもしろくないので,いくつかシグネチャを用意して,それらをきりかえて使いたいのですが.
【答え】
c-sigというEmacs-Lispパッケージを利用します. 以下に $(HOME)/.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)      ;; ランダムに挿入する.

;;; Mewでシグネチャを対話的に選択する設定
(add-hook 'mew-draft-mode-hook
    (function (lambda ()
        (define-key mew-draft-mode-map "\C-c\C-i" 'insert-signature-eref)))) 

シグネチャは M-x add-signature で登録できます.MewのDraftバッファで C-c C-i をすると,シグネチャの選択バッファが出てきますので,p(ひとつ前のシグネチャ),n(次のシグネチャ)で選択して,リターンで確定です.

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.2 複数あるX-Face:をきりかえて使いたい.

【質問】
シグネチャと同じように,X-Face:もきりかえて使いたいのですが.
【答え】
select-xfaceというEmacs-Lispパッケージを利用することで,画像を見ながら選択することができるようになります. まず,$(HOME)/.emacsに以下の設定を追加してください.
(require 'select-xface)
(add-hook 'mew-draft-mode-hook
          (lambda ()
            (define-key (current-local-map) "\C-c\C-x" 
              'select-xface)))

X-Face:のファイルは$(HOME)/.xfacesディレクトリに入れておきます. ファイル名は何でもかまいません. そして,MewのDraftバッファで C-cC-xをすると,X-Face:の選択バッファが出てきます. C-p(ひとつ前のFace),C-n(次のFace)で選択して,リターンで確定です.

設定の詳細に関しては,添付されているREADME.jisを参照してください.

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.3 引用記号を付けたい.

【質問】
メールを引用するときに,よく「hogeさん>」という引用記号を使っている人がいますが,どうしたらできますか.
【答え】

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.4 procmailで振り分けた新着メールをおいかけたい.

【質問】
procmail を使って届いたメールを自動的に指定したフォルダに振り分けています.しかし,振り分けたあとに新着のメールがどこにあるのかわからないのが不便です.
【答え】
prom-mew(http://www02.so-net.ne.jp/~murata/software/prom.html)というパッケージを利用すると,procmailのログファイルを見て各フォルダに振り分けられた新着メールの一覧を表示してくれます.詳しくはパッケージの中のprom-usage.jisを参照してください.

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.5 mh-biffで未読管理をしたい.

【質問】
slocalでふりわけたメールの未読管理にmh-biffを利用しています. mh-eやmnewsで読んだときはちゃんと未読の数が減っていましたが,Mewで読んでも未読の数が減ってくれません. Mewでもmh-biffで未読管理をしたいのですが.
【答え】
以下の設定を $(HOME)/.emacsに追加してください.
(add-hook 'mew-message-hook
	  '(lambda ()
	     (and fld msg (not (boundp 'program))
		  (mh-biff-delete-unseen-sequence fld msg)))) 

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.6 オフラインでメールを書きたい.

【質問】
オフラインでメールを書いておいて,オンラインになったときにメールを送信したいんですが.
【答え】
$(HOME)/.im/Configに以下の設定を追加してください.
QueueDir=queue
Queuing=yes
JustQueuing=yes

こうしておくと,C-cC-cでメールを送信すると,実際には送られずにQueueDir(上の例では$(HOME)/.im/queue)に保存します. 保存したメールを実際に送信するには,ネットワークに接続した後,

% imput -q

とします.

また,$(HOME)/.emacs

(setq mew-auto-flush-queue t)

という設定を追加しておくと,ネットワークに接続した状態でimgetを起動したとき,すなわち,Mewを起動したりSummaryバッファでiを押したときなどに自動的にQueueDirにたまったメールを送信することができます.

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.7 自分で出したメールの控えを残しておきたい.

【質問】
自分で出したメールの控えを残すにはどうしたらいいですか.
【答え】
以下の設定を$(HOME)/.emacsに追加してください.
(setq mew-fcc "自分が出したメールを残すフォルダ名")
この場合でもIMやSMTPオプションを付けてコンパイルしたMHを使っていればMessage-Id:が付きますし,メールが何らかの理由でロストしてしまった場合でも控えを残すことができます.

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.8 定型文書を自動的に入れたい.

【質問】
メールを書くときに「○○です.」と毎回書くのは面倒です.こういった文章を自動的に入れる方法はありませんか.
【答え】
$(HOME)/.emacsに以下の設定を追加してみてください.
(add-hook 'mew-draft-mode-hook
	  (function
	   (lambda ()
	     (let ((p (point)))
	       (goto-char (point-max))
	       (insert-file "~/Mail/hoge")
	       (goto-char p)))))

すると,Mewでdraftが用意されるときに,insert-fileの引数に指定されている$(HOME)/Mail/hogeというファイルの内容が自動的に挿入されます.

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.9 パスワードの入力を省きたい.

【質問】
POPやAPOPを利用してメールを取りこむときに,毎回パスワードを聞かれます. 毎回パスワードを打つのは面倒なのですが.
【答え】
以下に挙げる方法は,基本的に推奨されるものではありません. 設定次第では第三者にパスワードを盗まれてしまう可能性があることをよく理解して利用してください.
方法その1:パスワードをファイルに書いておく
$(HOME)/.im/Configに以下の設定を追加します.
UsePwFiles=yes    # パスワードファイルを利用するかどうか
PwFiles=password  # パスワードを書いておくファイル名.

次に,PwFilesに指定したファイル(上の例では$(HOME)/.im/password)に以下のように記述します.

プロトコル[SPC or TAB]メールサーバ名[SPC or TAB]アカウント[SPC or TAB]パスワード

例えば,mailserver.hoge.ne.jpというメールサーバにhogeというアカウントを持っていて,パスワードがhogehogeでPOPでメールを取ってくるという場合,

pop/POP mailserver.hoge.ne.jp hoge hogehoge

と書きます.

PwFilesに指定したファイル(上の例では$(HOME)/.im/password)のパーミッションには十分注意してください. ディレクトリ$(HOME)/.imdrwx------chmod 700 $(HOME)/.imでできます),PwFilesに指定したファイル(上の例では$(HOME)/.im/password)は-rw-------chmod 600 $(HOME)/.im/passwordでできます)にしておくのがよいでしょう. 特にWindowsの場合は,他人にこのファイルを見られるようなことがないよう,十分に注意する必要があります.

方法その2:impwagent(WindowsではPWAGENT.EXE)を利用する.
$(HOME)/.im/Configに以下の設定を追加します.
UsePwAgent=yes   # パスワードエージェントを利用するか
PwAgentPort=6543 # パスワードエージェントが利用するポート番号.
                 # PwAgetPortはWindowsでPWAGENT.EXEを利用する場合のみ指定.

次にimpwagent(WindowsではPWAGENT.EXE)を起動しておきます. すると,最初の1回はパスワードを聞かれますが,それ以降はimpwagent(WindowsではPWAGENT.EXE)がキャッシュしたパスワードを利用するようになるので,入力を省けます.

なお,Windowsでは,他人がネットワークを通してPWAGENT.EXEを上げているマシンに入れる環境になっていると,パスワードが盗まれてしまうので注意が必要です.

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.10 Newsgroup:やFollowup-To:で補完をかけたい.

【質問】
mew-gnus.elを利用してネットニュースを読んでいます. 記事を投稿しようとするときにNewsgroup:やFollowup-To:でニュースグループ名が補完できると便利なのですが,どうすればできますか.
【答え】
以下の設定を$(HOME)/.emacsに追加してください.
(defun mew-draft-newsgroup-comp ()
  (interactive)
  (let ((word (mew-delete-backward-char)))
    (if (null word)
    (tab-to-tab-stop)
      (mew-complete word gnus-active-hashtb "newsgroups" nil))))

(eval-after-load
    "mew"
  '(setq mew-field-completion-switch
   (append mew-field-completion-switch
    '(("Newsgroups:"  . mew-draft-newsgroup-comp)
       ("Followup-To:" . mew-draft-newsgroup-comp)))))

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.11 別名(alias)を利用したい.

【質問】
アドレスが長くてわかりにくいので,別名(alias)を付けて簡単に入力したいのですが.
【答え】
$(HOME)/.im/Configに以下の行を追加してください.
AliasesFile=Aliases

AliasesFileの設定は$(HOME)/.imの相対パスで表されます. 上記の例では$(HOME)/.im/Aliasesを指定したことになります.

次に,$(HOME)/.im/Aliasesを編集します. 書式は,

別名:[SPC or TAB]アドレス

です. 例えば,

hoge: hoge@hoge.hoge.hoge.or.jp

と書きます. こうすると,To: などに hoge と書いた場合,メールの送信時に hoge@hoge.hoge.hoge.or.jp に置き換えられます.

$(HOME)/.im/Aliasesは起動時に読み込まれます. すでにMewを起動した状態で$(HOME)/.im/Aliasesを編集した場合は,その変更を反映させるために,SummaryバッファでC-u Zを実行してください.

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.12 複数のメールサーバからメールを取りたい.

【質問】
複数のメールサーバからメールを取りたいのですが.
【答え】
$(HOME)/.im/ConfigAssocオプションを設定します. 書式は,
Assoc=dst1=src1;dst2=src2;...

となります. 複数列挙する場合には;(セミコロン)で区切ってください. 複数行で書く場合は,継続を表す\(バックスラッシュ)を忘れずに書いてください.

例えば,プロバイダ1のメールサーバがmailserver1.hoge.ne.jpでアカウントがhoge,プロバイダ2のメールサーバがmailserver2.hoge.ne.jpでアカウントがhogehogeで,両方ともPOPを使ってメールを+inboxに取り込む場合は以下のように記述します.

Assoc=+inbox=pop/POP:hoge@mailserver1.hoge.ne.jp; \
      +inbox=pop/POP:hogehoge@mailserver2.hoge.ne.jp

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.13 メールサーバにメールを残したままにしておきたい.

【質問】
メールを取ってきた後もメールサーバにメールを残しておきたいのですが.
【答え】
$(HOME)/.im/Configに以下の設定を追加してください.
Keep=-1

POPを利用している場合には,ProtoKeepを指定することで,既読のメッセージと未読のメッセージを識別する方法を指定することができます.

ProtoKeep=UIDL
ProtoKeep=LAST
ProtoKeep=STATUS
ProtoKeep=MSGID

それぞれのプロトコルに関しては,IMのパッケージに含まれるman/imget.jisを参照してください.

また,POPを利用している場合は,Keepに日数を指定することで,指定した日数が経過した時点(メールを取ってからの経過日数)で削除することができます. ただし,ProtoKeepに指定したプロトコルによっては機能しない場合があります.

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.14 リプライをするときにCc:に自分のアドレスを入れたくない.

【質問】
メールにリプライすると,自分のアドレスがCc:に入ってしまいます. 自分のアドレスをCc:に入れたくないのですが.
【答え】
mew-mail-address-listにCc:に入れたくないアドレスのリストを設定してください. 例えば,hoge@hoge.co.jpとhogehoge@hoge.orgというメールアドレスを持っていて,これらをCc:に入れたくない場合は,$(HOME)/.emacsに以下の設定を追加してください.
(setq mew-mail-address-list '("hoge@hoge.co.jp" "hogehoge@hoge.org"))

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】


5.15 Mewにパッチを当てたい.

【質問】
Mew-distメーリングリストにMewのパッチが投稿されていました. バグを修正したり,試してみたい機能を追加するパッチのようなのですが,どうやったらパッチを当てられますか.
【答え】
まず,そのパッチが自分の利用しているMewのバージョンで利用できるのかどうか確認しましょう.

ここでは,/tmp/mew-1.XX にMewが展開してあって,パッチは /tmp/mew-1.XX/hoge.patch というファイルに保存されているものとします.

% cd /tmp/mew-1.XX
% rm -rf *.elc
% patch < hoge.patch

パッチがうまく当たらなかった場合,.rejという拡張子が付いたファイルができます. 例えば,mew.elにパッチを当てると,パッチを当てる前のファイルがmew.el.origという名前で保存され,パッチがうまく当たらなかった場合にはそれに加えてmew.el.rejというファイルができます.

パッチがうまく当たったら(*.rejファイルがなければ)もう一度makeして,インストールをします.

% make
% su
# make install

【この文書のはじめに戻る】 【もくじに戻る】 【トップページに戻る】