SGmailの特徴
SGmailを作るにあたっては次のようなコンセプトで作っています。
- 自分が必要な機能は実装する
おいおい(^^;)。でもまあ、これが基本コンセプトですね。なもので、私自身が使用しない、または使用頻度の低い機能は省略している場合があります。
- WindowsのMUAと同等の機能を持たせる
Gtk,Tkを使うんですから、WindowsのMUA(AL-MAIL,Becky,Win-biff,etc)あたりと比べても遜色のないMUAにしたいと思っています。
- 必要に応じて独自の機能も付加する
自分で作る醍醐味は、何と言ってもやりたければなんでもできると言うことに尽きますので、いろいろ、独自の機能も付加してあります。
と言うことで特徴とよべるかな?と思うものを列挙すると、
- Ruby/Gtk,Ruby/Tkで記述
Ruby/Gtk,Ruby/Tkで記述してます。同じコードで、Ruby/Gtk,Ruby/Tkのどちらでも動きます。で、Windows 98,Windows 2000でもRuby/Tkモードは動作しています。
- X window system上で動作
X window system上で動くMUAが欲しかったわけですので、これは当然ですね。
- Windowsでも動く
現在のところ、一部制限はありますが、Windows9{5|8},Windows NT/2000でも動作するようになっています。
- Biff機能
初期の実験バージョンでは、Biff機能のみだったので、当然Biff機能は持っています。
- POP3,IMAPに対応
IMAPのMIME機能を有効に使うようになっています。POP3での実装もIMAPのキャッシュ機構を有効に使って実装しています。
- 必要な時だけサーバに接続する動作モードがある
ダイアルアップルータ等でリモートで接続しているとき、ルータの無通信切断機能などで切断されてもきちんと動作させるためです。そのためloginしっぱなしの場合に比べると少しレスポンスが悪いです。もちろん、常時接続モードも使うことができます。
- 独立ウインドウのメールビューア
画面上の占有面積をなるべく少なくするため、受信メールの表示領域は独立したウインドウになり、通常はメールリストのみ表示するモードがあります。もちろん、ごく普通の表示モードもありますので、好みで使い分けることができます。
- 階層的アドレスメニューをサポート
いちいちメールアドレスを入力するのは願い下げだし、Windowsなどと同じような操作性にしたいと言うことで、アドレス入力欄の隣のボタンでメニューからアドレスを選択できるようにしてあります。グループ分けできるように階層的なポップアップメニューになっています。
- メールの自動分類
分類テーブルを使ってメールの自動分類ができるようになっています。分類テーブルには正規表現が使えますので、柔軟な分類設定を行うことができます。デフォルトでは既読メールのみ分類するようになっていますが、強制フラグで未読であっても分類できるようになっています。
- 2段階のメール分類機能
メールを分類する際は、すぐに分類するのではなく、まず分類先を設定してから、分類実行を行うようになっていますので、分類のキャンセルや、一部変更ができるようになっています。
- テンプレート機能
テンプレート機能は、送信、返信、転送の時に自動的に動作する、オートテンプレート機能があります。もちろん、普通のテンプレート機能も持っています。テンプレートにはヘッダの置換機能が付いていますので、返信にSubjectを挿入したりと言ったことが行えるようになっています。
- URLクリックでブラウザが起動
Ruby/Tkでは、URLをスキャンし、タグ付けを行って、タグをクリックすると、netscapeが起動するようになっています。Ruby/GtkではURLをセレクトして起動することができます。
- HTMLメール閲覧機能
最近は、メールの本文そのものがHTMLで書かれている、なんていうとんでもないメールも増えてきていて、読めないのも癪なので、メール本文をブラウザで表示する機能を付けました。
- メールアドレスクリックでメール送信
URLクリック同様、メールアドレスにタグ付けを行い、メールの送信ができるようになっています。
- 送信者のニックネーム表示
メールの一覧表示では、分かりやすいようにFromアドレスから、アドレステーブルの逆引きを行って、ニックネームによるFromアドレス表示を行っています。またアドレステーブルに登録する程ではないが、逆引きだけは行いたいという用途のために無名アドレスブロックを書くと逆引き表示のみ行うようになります。
- オートシグネチャ機能付き
シグネチャは、独自のシグネチャファイルを使用しています。送信先に合わせて自動的にシグネチャを変更する「オートシグネチャ機能」があり、メーリングリスト毎にシグネチャを変更する等簡単に行えるようにしています。
- MIMEメールの受信に対応した
MIMEメールの受信に対応しています。テキストパートは内部ビューア、HTML/imageについては、外部ビューアを使用して読むことができます。外部ビューアの起動は現在のところ、UNIX版のみの機能です。
- メールボックスにアドレス帳などを保存
アドレス帳、分類テーブル、シグネチャ、テンプレートのデータは、IMAPのメールボックスに保存するようになっています。そのため、複数のマシンから同じアカウントでメールを読み書きする際にもアドレス帳や分類テーブルの不一致が起こることが防げます。
- 検索機能
IMAPの検索機能に対応しています。漢字を含むメッセージの検索が可能です。
- 改造が簡単にできる(多分^^;)
Ruby/Gtk,Ruby/Tkで記述してあると言うことで、コードが丸見えですので、比較的簡単に改造できると思います。ただし、あまり(ほとんど^^;)コメントがありませんので、その辺は宜しくお願いします。
- エディタ機能が貧弱m(__)m
うーみゅ、Tkのお勉強が足らないので、エディタ部分などは、非常に貧弱です。一応、72文字とかで強制的に改行をいれる行編集機能は持っています。emacsのauto-fillモードと同じように動作します。
- SSHを使った暗号化トンネリング
sshのトンネルを張ることができるアプリケーションランチャを付けました。SGmailと組み合わせて使うと面倒な操作無しに、トンネルした先のサーバにアクセスできます。
- IPv6対応
いやまあ、SGmail自体が対応してるわけではないのですが、RubyにIPv6パッチを当てることで、IPv6対応メーラとして使えます。