2008年1月20日日曜日

mutt attachファイルを特定の場所へ保存する

linux上でmuttを走らせてメールを読んでいて、doc添付メールを開こうと思う。このときlinux上のmuttで何が出来るでしょう?かつては意地でもdocファイルをlinuxで見えるようにしようとがんばってましたが、完全あきらめ。
で、Windows用のファイルなのだからWindowsで見れば良いでしょう、ってことにしてます。linux上で添付ファイルを保存する場所を一箇所に決めてしまい、いつも添付ファイルはo同じ場所へセーブしています。muttでは、下記のようにmacroを使って、

macro attach s <save-entry>^a~/.Mail/attached_files/^e
macro attach <return> <save-entry>^a~/.Mail/attached_files/^e\n

これで、添付ファイルの参照モードからリターン・キーやsキーに対してデフォルトの保存先がいつも一箇所になります。このmacroの定義記述は、
attachモードで
sキーを押すと
save-entry関数が呼ばれ
ctrl-aでミニバッファの先頭へ移動し
/.Mail/attached_files/とキー入力を擬似し
ctrl-eで行末へ移動し
改行を打つ
ところまでやってくれるmacroの定義です。

添付ファイルがいつも一箇所に保存されているので、fdcloneで、
fd ~/.Maildir/attached_files/
で参照できます。またfdcloneの.fd2rcに、

# launcher definition
launch ".html" "w3m %C"
launch ".htm" "w3m %C"
launch ".exe" "fview.tcl %C"
launch ".xls" "fview.tcl %C"
launch ".csv" "fview.tcl %C"
launch ".ppt" "fview.tcl %C"
launch ".doc" "fview.tcl %C"
launch ".pdf" "fview.tcl %C"
launch ".zip" "fview.tcl %C"
launch ".lzh" "fview.tcl %C"
launch ".cab" "fview.tcl %C"
launch ".jpg" "fview.tcl %C"
launch ".tif" "fview.tcl %C"
launch ".bmp" "fview.tcl %C"
launch ".gif" "fview.tcl %C"

と記述しておくと、ftp転送スクリプトへ選んだファイルが転送されます。

また、いちいち確認せずにWindowsへ転送してしまうためには、

macro attach <return> <save-entry>^a/svhome/ogurak/.Mail/attached_files/^e\n<shell-escape>^afview.tcl<space>~/.Mail/attached_files/^e\n

とするとリターンを打つと即座にWindows上で表示できます。
これは最初の<save-entry>でファイルを所定の場所へ保存後<shell-escape>で所定の場所で最新のファイルをWindowsへ転送・表示することになります。ここでのfview.tclはファイル名ではなく、ディレクトリを引数として最新のファイルを探し出して処理しています。

0 件のコメント: