高速・軽量メールクライアント
Sylpheed の応用ソリューション
高速全文検索機能 (Sylph-searcher)
メールライブラリ (LibSylph)

OpenSource Conference 2009 Tokyo/Spring
SRA OSS, Inc. 日本支社 山本博之
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylpheedとは オープンソースのメールソフト
 ライセンスはGPL+LGPL 高速・軽量
 高機能
 高い操作性 高信頼性 導入が容易 マルチプラットフォーム

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylpheedの特徴
 高速・軽量
 各種操作のレスポンスを重視

 高機能
 高い操作性
 キーボードのみでサクサク読み進められる 高信頼性 1ファイル=1メール (ファイルの破損などに強い、バックアップしやすい) マルチプラットフォーム
 GUIをGTK+ライブラリで構築
 Unix系OS(Linux, BSD, Mac OS X)、Windowsなどに対応
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylpheedの主な機能
 さまざまなメールプロトコルに対応
 POP3, SMTP, IMAP4, (NNTP) セキュリティ関連機能
 SSL/TLSv1, PGP (GnuPG) 強力なフィルタリング・検索機能
 外部プログラムとの連携
 振り分け時に任意の外部プログラムを実行可能
 迷惑メール対策機能: bogofilterまたはbsfilterを利用

 国際化・多言語対応
 その他多数の便利な機能
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

最近追加された機能
 POP3リモートメールボックス機能 (2.6.0)
 POP3サーバ上のメッセージを直接操作可能

 設定ファイルの自動バックアップ強化 (2.6.0)
 設定ファイルのバックアップを複数世代もつようにした 縦3ペインモード (2.5.0)
 フォルダツリー、メール一覧、本文を縦に3つ並べたレイアウト

 添付ファイル忘れ防止機能 (2.5.0)
 本文に「添付」などの文字列があった場合確認をとる

 送信前の宛先確認機能 (2.5.0)
 誤送信防止Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylpheedの歴史
1999/9●2000/1●
2004/12●
2005/7●●●

GTK+ 1.2からGTK2に移行

2006/2●

バージョン2.2リリース

Windowsに正式対応

2007/4●
2008/12●

開発スタートバージョン0.1初公開バージョン1.0を正式リリース
バージョン2.0リリース

バージョン2.4リリース
バージョン2.6リリース
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

LibSylph コンパクトなC言語メールライブラリ Sylpheedのコア部分をライブラリとして独立
 UIに依存しないさまざまな機能を提供
 メール送受信、メール解析、ファイルI/O、文字列処理など

 メール関連機能を組み込んだプログラムを作成可能
 組み込み用途にも使用可能 ゲーム機やPDAなどで実績あり

 LGPLライセンスで配布

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylpheed
LibSylphLibSylph開発の動機
 Sylpheedを開発する際に使えるメールライブラリのようなものがないか探した 初期はmhコマンドを使っていた

 結局メール関連の機能は全部自前で実装した
 汎用的に使える部分をライブラリとして公開すれば様々な用途に使えるのでは?

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

LibSylphの構成
アプリケーション

LibSylph

依存するライブラリ

GLibOpenSSLlibc

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

LibSylphの機能 - メール関連
メールボックス管理

メールの送受信アカウント情報の管理
フォルダツリーの管理

メール受信 (POP3, IMAP4)
メール送信 (SMTP, SMTP AUTH)

フィルタリング (振り分け)SSL (SSL tunnel, STARTTLS)

LibSylph
メールデータの処理

エンコード・デコード

メール作成

BASE64

メールの解析 (ヘッダ、MIME構造)

quoted-printable

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

LibSylphの機能 - その他
入出力

パーサ

ファイルI/O

簡易XMLパーサ

ネットワークI/O

簡易HTMLパーサ

SSL, TLSによる通信設定ファイル(INI)の読み書き

LibSylph
文字列処理
文字コード変換
日本語文字コードの自動判別
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

LibSylphの使用例
メールの送受信(POP3 / IMAP4 / SMTP)

アプリケーション

メールサーバ

LibSylph
保存されたメールの読込
受信したメールの保存

Sylpheedによって保存されたメールのデータ

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

LibSylphの具体的な使用例
 SRAのメールアーカイバ製品 MailDepot
 社内でやりとりされるメールをすべてDBにアーカイブして高速に全文検索
 メールの送受信、解析にLibSylphを使用

http://www.sra.co.jp/maildepot/

 Sylph-Searcher メールの取得・解析に使用
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylph-Searcher
 Sylpheed向け全文検索ア
プリケーション
 高速な全文検索が可能
 Sylpheedの検索機能を補完 Linux/Unix, Windowsで動作 オープンソース
 修正BSDライセンス

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylph-Searcher開発の動機
 Sylpheedの本文検索は遅い
 数千件のメール検索に数分ほどかかる

 大量のメールを高速に検索したい PostgreSQLに最近全文検索機能が実装された
 これを使えば高速に検索できるかも

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylph-Searcherの特長
 高速な検索 数万～数十万件のメールから瞬時に本文の検索が可能
 DBとしてPostgreSQL 8.3、全文検索エンジンとしてPostgreSQL 8.3内蔵のtsearch2を使用

 単体のアプリケーションとして動作 Sylpheedと連携可能

 Windows版はインストーラ版も提供
 GTK+, MeCab, PostgreSQLなど必要なものをすべて同梱
 PostgreSQLなどの知識がなくても簡単にインストール可能

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylph-Searcher の構成
Sylpheed

Sylph-Searcher
MeCab

LibSylph
DB登録・検索

本文わかち書き

メールの取得・解析

メールデータ

全文検索
インデックス作成

PostgreSQL

tsearch2(DBは別のマシンにあってもよい)
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

Sylph-Searcher の処理
 登録時
 LibSylphを使ってSylpheedのメールデータを取得
 メールの内容を解析してヘッダ情報を取得
 MeCabを使って本文を分かち書き
 PostgreSQLのDBに登録
 tsearch2エンジンによって自動的にインデックスを生成

 検索時
 MeCabを使って検索キーワードをわかち書き
 PostgreSQLのDBを検索 検索結果をウィンドウに表示
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

他の検索エンジンとの比較
 Sylph-Searcher メールの検索に特化
 専用インタフェース
 インデックスの作成にはそれほど時間がかからない Google Desktop ヘッダなどの細かい条件指定はできない インデックスの作成に時間がかかる

 Vista 標準の検索エンジン
 ヘッダなどの細かい条件指定はできない インデックスの作成に時間がかかる Mozilla Thunderbird の検索機能
 本文検索速度: Sylph-Searcher >> Thunderbird >> Sylpheed
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

将来のTODO (Sylpheed)
 高速化
 データ構造、キャッシュの改良
 サマリ表示の改良
 マルチスレッド化

 プラグイン機構の追加
 迷惑メールフィルタ
 RSSリーダ
 カレンダー S/MIME対応
 インポート・エクスポート機能の充実
 UIをより親切に
Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

将来のTODO (LibSylph) APIがこなれていないところがあるのを修正したい
 構造体のメンバを直接いじる必要がある 関数名のプレフィクスが適当

 ドキュメントの不足 記述が不足 英語版ドキュメントがない Sylpheed同梱版と単体配布版の統一
 現在は別々のツリーで開発しているためマージが煩雑

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

将来のTODO (Sylph-Searcher) ユーザインタフェースの改良 検索機能の強化
 他のヘッダの指定、フレーズ検索など

 添付ファイルの検索
 他メールソフトへの対応
 Sylpheedへの統合
 受信時に自動的にインポート
 Sylpheedのインタフェースからシームレスに利用
 SylpheedのメールストレージとしてDBを使う

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

ビジネスでの利用
 SRA OSSはSylpheedの開発を支援
 Sylpheedをビジネスにもつなげていきたい LibSylphを製品に組み込む
 コンサルティング
 開発

 Sylpheed, Sylph-Searcher 導入、カスタマイズ

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.

関連サイト Sylpheed ホームページ
 http://sylpheed.sraoss.jp/

 LibSylph http://sylpheed.sraoss.jp/ja/download.html#libsylph

 Sylph-Searcher http://sylpheed.sraoss.jp/ja/download.html#searcher

 SRA OSS, Inc. 日本支社
 http://www.sraoss.co.jp/

Copyright © 2009 SRA OSS, Inc. Japan All rights reserved.