便利なソフト - QMAIL32008/12/14 21:01

PDA でメール機能は重要な機能です。
Windows Mobile では、Pocket Outlook というか、Outlook の Mobile 版が付いてきますが、Folder 毎の整理機能や、offline での操作など、自由度がいまいちです。

QMAIL3 は、紹介するまでもなく有名なソフトで、たぶんこれほど PC 用の mail soft に遜色のない機能を実現したものは手に入らないのでは、と思うほどのでき。マクロでいろいろとカスタマイズできるところは、他の PC 用 mail soft 以上かも。

QMAIL3 - http://q3.snak.org/

とにかく愛用しています。

唯一追加で機能として欲しかったのが、添付ファイルをメールデータから切り離して保存する機能。メールデータの総容量を防ぐ目的。Pocket Outlook にはそういう機能がありました。

ここで QMAIL3 作者に添付ファイルを保存するマクロ関数の実装をリクエストしたところ、なんと実現していただけました。このマクロ関数を利用して、
1) 添付ファイルをある特定のディレクトリ以下に、日付ごとにディレクトリ分けして保存する
2) メールデータから添付ファイルを削除する
という機能を実現するメニューを作ってみましたので紹介します。

まず、menus.xml のよさそうなところに、下記を追加してください。

<menuitem text="添付保存" action="MessageMacro" param="@Progn(@Set('PP',@Concat(@AccountDirectory(),'\\..\\..\\SCRIPTS\\attachment_save.mac')),@ForEach(@Messages(@folder(@True())),@Include($PP)),@MessageBox('SaveAttachment_Done'),@Exit())"/>

<menuitem text="添付削除" action="MessageMacro" param="@Progn(@Set('PP',@Concat(@AccountDirectory(),'\\..\\..\\SCRIPTS\\attachment_delete.mac')),@Include($PP),@Exit())"/>

また、QMAIL3 の SCRIPTS のディレクトリ内に、下記からダウンロードしたファイルを入れてください。

http://www.ne.jp/asahi/net/pockey/qmail/attachment_save.mac
http://www.ne.jp/asahi/net/pockey/qmail/attachment_delete.mac

メニュー上に、「添付保存」と「添付削除」ができます。
「添付保存」は、表示中のフォルダのメールすべての添付ファイルを、メール保存ディレクトリ以下の "年\月\日" ディレクトリに保存します。また、添付ファイルの名前は、"時分秒_元ファイル名" にして保存します。

「添付削除」は、表示中のフォルダのメールすべての添付ファイルをメールデータから削除します。
このとき、あるアクション機能の制限で、添付ファイルの無いファイルまでも処理するため、余計な時間がかかります。これを防ぐために、先の「添付保存」処理されたものだけを検索して、「添付削除」をするといいでしょう。
「添付保存」処理されたものは、大文字で "S" というラベルが付きますので、ラベルが "S" のメールを検索する検索フォルダをあらかじめ作っておき、その検索フォルダにて「添付削除」を行なうと無駄がありません。「添付削除」された添付ファイル付きメールは、"S" というラベルから "R" というラベルに変ります。

もっとスマートなマクロ実装があったらみなさん教えてください!

この QMAIL3、iPAQ212 の場合、メールボックスは本体フラッシュメモリに置いておかないと、QMAIL3 を起動したまま電源を切るときにファイル/ファイルシステムが壊れます(QMAIL3 の FAQ に書いてあります)。メールボックスを CF や SD などの外部ストレージ上にするとそうなります。メールボックスと、メッセージのファイル保存先は分離でき、大量のメールデータが入るメッセージのファイル保存先だけ CF や SD 上に置いておけば(設定方法も FAQ にある) OK です。

話題は変って、Pocket Outlook ですが、Pocket Outlook も添付ファイルの保存先をメッセージの保存先をデフォルトとは別の場所に設定することが出来ます。

レジストリで、

[HKEY_LOCAL_MACHINE\System\Inbox\Settings]
"AttachPath"="\\SD Card\\inbox\\attached"
"PropertyPath"="\\SD Card\\inbox"

上記の AttachPath と PropertyPath の設定をします。