目次

データ・プライバシー

本アプリのスパムフィルタリングは、一般的なスパムフィルタリングとは異なる実装をしている。一般的なスパムフィルタリングでは、指定された学習データをアプリサーバにアップロードし、アプリサーバで機械学習を行い、アプリサーバがスパムフィルタリングを行う。このことは、学習データであるユーザのメールが第三者のサーバで解析、管理されることを意味する。さらに、アプリサーバがメールサーバに対してスパムフィルタリングを行うことは、データ・プライバシー上、大きな問題になる。

本アプリは、完全にクライアント側(iOSデバイス内)で動作し、第三者の機器は一切関係しない。
学習データは、iOSデバイス内に存在し、iCloudオプションが指定されない限り(iCloudオプションは現在、本アプリでは推奨されていない)、iOSデバイス外に出ることはない。
機械学習アルゴリズムは、本アプリ内に内蔵されており、生成されるスパムフィルタも本アプリが管理している。
スパムフィルタリングに関しも、本アプリがiOSデバイス内で行う。
学習データの指定からスパムフィルタの生成まで、第三者のソフトウェアモジュールが使用されず、iOSデバイス内で行われる。
スパムフィルタリングを行うアプリでありながら、データ・プライバシーは完全に保たれることになる。

スパムフィルタリングに加えて、本アプリは、ルールベースのメールフィルタリングも行う。 この場合は、ユーザーが指定したフィルタリングルールは、iOSデバイス内に保存される。
iCloudオプションが指定されない限り、データがiOSデバイス外に出ることはない。

一般的スパムフィルタリング

本アプリのスパムフィルタリング


注意:iOSは、第三者のデーモンプロセスを許可しないので、スパムフィルタリングの実装は、上記の2つに限られる。

その他のデータ・プライバシーに関しては、どのようにスパムフィルタが生成されるか?プライバシー・ポリシーを参照。

はじめに

どのようにスパムフィルタが生成されるか?

データ・プライバシーがどのように確保されるか、学習データに指定されたメールデータからどのように機械学習によりスパムフィルタが生成されるか簡単に説明する。

まず、メールデータから文字ベースのNグラム(ユニグラム、バイグライム、トリグラム)が生成される。
次に、生成されたNグラムからスパム判定に効果的なものを特徴として選択する。
3番目に、機械学習により、選択した特徴に対し、重みを付与する。
最後に必要十分なペア{特徴、重み}の集合をスパムフィルタとして生成する。

これらの過程において、本アプリは、外部のソフトウェアモジュールへアクセスしたり、第3者の提供するソフトウェアモジュールを使用することはない。
Nグラムは、メモリ上に生成され、特徴選択後は、廃棄される。
生成されたスパムフィルタは、iOSデバイス内に格納される。

このように、ユーザデータは、完全に保護される。

スパムフィルタリング

迷惑メール(スパムメール)対策は、PCの世界ではメーラーに組み込まれたスパムフィルタによる対策(クライアント側の対策)とメールサーバ側の対策がある。
サーバ側ではメールアドレスをブラックリストまたはホワイトリストと照合しスパムを駆除、またはなんらかの機械学習アルゴリズムにより生成されたスパムフィルタを使用してスパムを駆除する。
両方の方式を組み合わせてスパムを駆除する場合もある。
しかし、メールが迷惑であるか否かは個人の主観に依るので、サーバ側のスパム対策が各ユーザーの要求に100%応えることはない。
ユーザーの事情に応じたスパム対策をするのであれば、クライアント側でのスパム対策が不可欠になる。
これまではサーバ側のスパム対策を利用するだけで、iPhone単体ではスパム対策はできなかった。iPhone以外にPCを利用できる人はIMAPメールに限りPCメーラーのスパムフィルタを利用することができたが、運用上の不便さがつきまとっていた。
本アプリは学習型のスパムフィルタを搭載しており、PCメーラーと同等それ以上のスパム対策をiPhone/iPad単体で可能にする。

自分専用のスパムフィルタをデザインする

本アプリは受信メールからユーザーが選択した正常、迷惑メールを入力データとして学習を行うことでスパムフィルタを生成する。
本アプリは、学習データとして迷惑メールのみを指定しても、アドレス帳に登録されているメールアドレスを参照して、INBOX内から正常データを適当に選択するので、アドレス帳にメールアドレスが登録されている場合は特に正常データを指定する必要がない。
ただし、精度が高いスパムフィルタリングをしたいのであれば、正常メールを学習データとして指定したほうが良い。
本アプリは、学習データとして指定した迷惑メール数が16を超えてから、受信メールは正常、迷惑メールへ自動分類(スパムフィルタリング)できるようになる。
ユーザーの判断で学習データを選択するので、要望に応じたスパムフィルタを作成できる。
このスパムフィルタをメールサーバサイドで提供されるスパムフィルタと組み合わせて使用すると強力なスパムフィルタリングが可能になる。


メールサーバで提供されるスパムフィルタの強度

サーバサイドで提供されるスパムフィルタの強度は低もしくは普通に設定しておくのが良い。
強に設定すると必要なメールまでも迷惑メールと判断される可能性が高まる。
サーバサイドで一般的な迷惑メールをフィルタリングし、クライアントサイドでユーザー事情に応じた迷惑メールをフィルタリングする。


メールサーバへ接続

はじめてアプリを起動すると新規アカウント画面が表示される。
作成したいアカウントのメールアドレスとパスワードを入力すると、IMAPサーバに接続され、最新のメール32件がダウンロードされ、監視モニタ画面が表示される。
メールアドレスがログイン名でない場合は、アカウント詳細設定画面が表示されるので、ログイン名(ユーザー名)を入力して、再接続を試みる。

新規アカウント画面
アカウント設定画面

メールサーバの接続に失敗した場合は、接続ボタンが手動ボタンになる。手動ボタンをタップすると詳細設定画面が表示されるので、必要な情報を入力して再度接続を試みる。

ログイン名、パスワードが分からない場合はメールサーバを管理している組織、あるいは担当者に問い合わせ、接続に必要な情報、ホスト名、ログイン名(ユーザー名)、パスワードを入手する。

SSL設定、ポート番号は再設定する必要はない。
SSL接続をしない場合はSSL接続をオフにする。
それに併せてポート番号も変わるが、期待するポート番号でない場合は設定し直す。

アカウント情報

本アプリに設定するアカウント情報はメールサーバに接続するために必要な情報であり、他のメーラーに設定するアカウント情報と同じになる。したがって、他のメーラーにおいて接続済みのアカウントを本アプリに設定する場合、同じログイン名(ユーザー名)とパスワードを設定すれば良いことになる。

接続エラーの対処
一旦接続が完了した後で"ネットワークエラー"が発生した時の対処

一旦接続が完了し、特定のメールサーバ側の原因で"ネットワークエラー"が発生すると、次のようなアラートが発生する。

ネットワークエラー

ここで、オフラインを選択した場合、オフラインから復帰するには、設定ボタンをタップし、"設定"に移動する。
"アカウント設定"に移動し、アカウントのオン・オフ スイッチをオフしてオンにするとオンラインに復帰する。
複数のアカウントが登録されている場合は、アカウント一覧を表示すると、当該アカウントにオフラインマークが付くので、テーブルセルを長押し(2秒間)すると、(当該メールサーバのネットワーク状況が改善されていれば)オンラインに復帰する。

オンライン復帰

スパムフィルタ作成

監視モニタ画面で次の手順で機械学習によりスパムフィルタを生成する。



フェーズ1   スパムフィルタを生成

  1. 編集ボタンをタップし、編集モードに移行
  2. 編集モードで迷惑メールと思われるものを複数選択する。テーブルセルをタップすると選択マークが表示される
  3. コマンドバーに迷惑、正常ボタンが表示されているので、迷惑ボタンをタップ
  4. 同じ要領で正常メールを選択し、正常ボタンをタップ
  5. メール一覧のプル・ダウンまたはナビゲーションバーを長押しすると学習が始まり、スパムフィルタが作成される
  6. 学習結果をチェックし誤りがある場合は訂正し、メール一覧で"プル・ダウンまたはナビゲーションバーを長押し、再学習をする
以上を迷惑メールが16個、正常メールが16個以上になるまで繰り返す。
学習データ指定
学習データ指定結果
メールを選択し、コマンドバーのスパムあるは正常ボタンをタップ 選択したメールの左端に迷惑メールを示す赤、正常メールを示す緑のマークが付く
学習
画面をプル・ダウンまたはナビゲーションバーを長押し(2秒間)すると学習が始まる。赤丸、緑丸が灰色丸に変化し、メールに正常、スパムのマークが送信者の先頭に付く

フェーズ2   スパムフィルタを鍛える

本アプリは、インストール時にスパムフィルタが無効になっている。迷惑メールを16個、正常メールを16個以上学習させると、受信メールメッセージを自動的に迷惑メールか正常メールを判断できるようになるが、スパムフィルタを有効にする必要がある。

  1. 本アプリの判断結果に間違いがあるかどうかを監視モニタで確認
  2. チェック・訂正後にメール一覧で"プル・ダウンまたはナビゲーションバーを長押しすると再学習がはじまり、より賢いスパムフィルタが作成される

以上を分類結果に誤りが無くなるまで繰り返す。

分類結果確認
分類結果訂正
分類結果を目視確認する 期待通りの分類結果でない場合は、編集ボタンをタップし編集モードに移行し訂正を行う。分類結果を訂正すると、訂正したメールの左端に迷惑メールを示す赤、正常メールを示す緑のマークが付く
再学習
再確認
訂正が済んだ後に、画面をプル・ダウンまたはナビゲーションバーを長押しすると再学習が始まる。 再学習が期待通りの結果であることを目視確認する
学習・分類結果の訂正

学習が終了すると学習の結果、生成されるスパムフィルタが学習データに適用され、正しく分類されたかどうか評価され 、赤あるいは緑のマークが灰色に変化する。
正しく分類された場合はテーブルセルの送信者(メールアドレス)の先頭にアイコンで分類結果が表示され、間違って分類された場合は、



のように表示される。
最初の例では正常メールが間違って迷惑メールに分類されたことを示している。
2番目の例では迷惑メールが正常メール、迷惑メールとも判断がつきかね、リジェクトされたことを示している。
2番目の例のリジェクトは学習の初期段階で学習データが不足している場合によく見られるケースであり、学習データ が増えるに従い解消される。
最初の例のような間違いは指定した学習データに矛盾がある場合によく見られるケースであり、似たような内容のメー ルを一方は迷惑メール、もう一方は正常メールに指定するとこのような分類間違いが発生する。
監視モニタで閲覧できるメールは学習データとして適宜追加、削除できる
一旦、正常としたメールを迷惑メールと指定し直したり学習結果を確認しながら、柔軟に学習データを指定、変更できる。
たとえば、編集画面で正常学習データのテーブルセルをタップするたびに緑のマーク、選択マーク、選択なしマーク、 選択マーク...と変化していく。
学習済みのデータの場合は灰色のマーク、選択マーク、選択なしマーク、選択マーク...と変化していく。
選択なしの状態で、スパムボタンあるいは正常ボタンをタップするとこのメールは学習データから削除される。
選択マークの状態でスパムボタンをタップすると迷惑メール学習データになる。
従って、分類エラーが発生しても修正して再学習ができる。


別な学習データの指定方法

メッセージを表示している状態でも、学習データを指定できる。 監視モニタのメッセージ一覧からメッセージを選択、表示した場合に限る。
差出人欄に表示される2つのボタンのうち、左側のボタンを長押しすると、ボタンが

透明→赤→緑

と変化する。
赤は迷惑メール、緑は正常メール、透明は学習データでないことを表している。
右側のボタンを長押しすると未読状態のオン•オフを変更できる。

メッセージ表示で学習データ指定

スパムフィルタ適用

アカウント設定でスパムフィルタを有効にすると受信ボックス内のメールを対象にスパムフィルタリングを実行する。
スパムフィルタのスイッチをオンにしない限りスパムフィルタリングが実行されない。
スパムフィルタリングをするか否かはアカウント毎に指定できる。
スパムフィルタの対象となるのは受信ボックスのみ。

メールルール作成

分類先のメールボックスにルールを指定することで、メールを分類できる。

ルールは、差出人、件名、本文(ルールに本文を指定するとIMAP受信メールのフィルタリング速度が低下)、またそれらを組み合わせた複合条件を指定できる。

ルールを作成するためには、メールボックス一覧でナビゲーションバーの編集ボタンをタップする。
選択メニューからルールを選択すると、ルール編集モードになる。
ルール編集モードに入り分類先のメールボックスを選択すると、最初に差出人メールアドレス一覧が表示される。
画面を切り替えるには、タブ・バーをタップする。

差出人メールアドレス、件名、本文のルールを追加する場合には、画面をプル・ダウンする。空の条件がテーブル一覧に追加されるので、 新規追加されたテーブル・セルをタップして条件を編集する。

複合条件を指定する場合には、先ず、差出人メールアドレス、件名、本文のルール一覧において、テーブル・セルを右にスワイプして表示される"複合"ボタンをタップする。
タップしたセルのルールが無効化され、複合条件ルール一覧に移動する。
タブ・バーをタップして複合条件画面に移動する。
ナビゲーションバーの右端の編集ボタンをタップすると、複合条件編集モードになり、ナビゲーションバーにツールバーが表示され、既存の条件をAND/OR/NOTの演算子で結合し、複雑なルールを作成できる。

ルール一覧画面において、テーブルセルを左スワイプすると"削除"、"無効"ボタンが表示される。 "削除"ボタンをタップすればルールが削除され、"無効"ボタンをタップすればルールが無効化される。

"設定"において、同様の操作で迷惑メールルールを作成できる。

複合条件

差出人、件名、本文で指定したルールをAND、OR結合したり、否定したりして複雑なルールを指定できる。

複合条件のセルをタップすると複合条件が視覚化されて表示される。

複合条件のテーブル・セルには次の記号が使用される。

複合条件で使用する記号

論理演算子

AND演算子
OR演算子
¬
否定演算子

条件の種類を示す記号

差.
送信者アドレス
件.
件名
本.
メッセージ本文
複合条件の例

複合条件は無限にネスト可能だが、常識的には、認知可能という意味で3か4レベルまでが妥当。
例を2つ示す。
最初の例は、3レベルのネストを持つルールで、比較的単純。
2番目の例は、表記の揺れを吸収するためのもので、これも単純な例となる。
10, tenと同じ内容を示す文字列、Ten, ten と Flu, flu については先頭文字の表記の揺れを吸収している。

単純なルールで検索条件を表現できない場合は、複合条件を使用すると良い。


  • (本.finance ∨ 本.money ∨ 本.stock )∧ ¬(差.daiwa ∧ 差.nomura)

  • (件.10 ∨ 件.ten ∨ 件.Ten) ∧ (件.Flu ∨ 件.flu ) ∧ 件.patient
  • メールルール適用

    ルールによる分類は、スパムフィルタリングより優先して行われる。
    ルールには、アカウント全体に有効なルールとアカウントだけに有効なルールがある。 アカウント全体に有効なルールは、統合アカウントのシステムメールボックス一覧のルール編集で指定するルールであり、アカウントだけに有効なルールは、各アカウントにおけるメールボックス一覧のルール編集で指定するルールになる。
    システムメールボックス対するルールは、統合アカウントで指定した方が効率が良いことになる。

    アカウント設定でルール適用の有無を指定できる。

    メールボックス編集

    未割当のシステムメールボックスを割り当てることで、システムメールボックスにできる。
    システムメールボックスにすることで、クイックビューリストに追加したり、統合アカウントでメッセージの移動先の対象にすることができる。

    メールボックス編集

    iCloud

    iOSデバイス(iOS7.0以上)がiCloudにサイン・インしているのであれば、詳細設定iCloudの利用を選択できる。

    ルールデータまたは学習データを変更しても、iOSデバイスのホームボタンを押してアプリをバックグランド状態するか、メッセージ一覧でフィルタリングを開始しない限り、変更分はiCloudへアップロードされない
    iCloudデータ同期が非常に遅れることがある。
    詳細設定の"iCloudストア再構築"をタップすると強制的に同期が行われる。
    強制同期に数分かかることがあり、その間、学習データ、ルールデータが削除されている状態になる。

    詳細設定の背景が青色のiCloudをタップすると、ローカルデータをiCloudに移行する際に

    のいずれかの方法を選択できる。
    上書きを選択するとiCloud上の既存のデータがが削除された後で、ローカルデータがiCloudへコピーされる。
    マージを選択するとiCloud上の既存のデータとローカルデータの差分のみがiCloudへコピーされる。
    スキップはデータ移行処理なしで、iCloudモードになる。


    詳細設定の背景が赤色のiCloudをタップすると、iCloudデータをローカルデータへ移行できる。
    何かの理由でiCloudデータが壊れ、自動復旧ができない場合は、次の手順でローカルデータからiCloudデータを復旧可能になる。

    1. 設定アプリでiCloudのストレージ管理においてMailCatを削除
    2. SpamBlockerの詳細設定で、背景が赤色のiCloudをタップする。その際、スキップを選択する
    3. 詳細設定で、背景が青色のiCloudをタップする。その際、上書きを選択する

    iOSデバイスがiCloudからサイン・アウトするとSpamBlockerではiCloudを利用できなくなる。


    iCloud利用を選択するとルールと学習データがiCloud上に保存され、MailCat、MailKitで相互に利用できるようになる。

    よくある問題

    メールサーバ接続時にネットワークエラー

    アカウント設定が終了した後、アプリ起動時にネットワークエラーのアラートが出る場合がある。
    その場合は、再試行ボタンをタップして再度ネットワーク接続を試みるか、キャンセルボタンをタップしてオフラインで起動する。
    アカウント一覧でオフラインのアカウントのテーブルセルを長押しするとオンラインの復帰処理が始まる。また設定のアカウント一覧でオフラインアカウントを選択して、アカウントスイッチのオフ・オンをすることでオンラインの復帰処理が始まる。

    設定でアカウントのオフ・オン
    長押しでオンライン復帰

    メールサーバ接続時に指定したパスワードの安全性

    入力したパスワードは、iOSデバイスとユーザが契約しているメールサーバに保存されているので、安全性は保証されているので、漏洩などの 心配はない。

    ログイン名・パスワードを入力してもメールサーバに接続できない

    ログイン名、パスワードが分からない場合はメールサーバを管理している組織、あるいは担当者に問い合わせ、接続に必要な情報、 ホスト名、ログイン名(ユーザー名)、パスワードを入手する。

    学習したにも関わらず、迷惑(スパム)メールがフィルタリング(ブロック)されない

    次のいずれかが原因。

    受信済のメールをフィルタリングしたい

    次の確認•設定をする。

    学習しても迷惑メールが正常メール、あるいは迷惑メールが正常メールと判断されてしまう

    学習データ数が少ないのが原因。
    より多くの学習データ数を指定することで解消される。
    SpamBlockerでは、迷惑メールだけを学習データに指定した場合、アドレス帳に登録されているメールアドレスを使用し受信済メールから合致するメールを探し、正常メールデータとする。この場合、同じようなメールだけが正常メールデータになり、学習効果があがらない可能性がある。モニタ画面で正常メールを手動で選択することで学習効果をあげることができる。

    誤って正常メールを迷惑メールに指定して学習してしまった

    モニタ画面で学習データを設定し直し、再学習すれば良い。

    ルールによるフィリタング速度が遅い

     IMAPにおいて、ルールの本文の項目を指定すると、フィルタルング速度が低下する。
    POP3は問題ない。

    iCloudデータが同期されない

    iCloudを参照

    iCloudデータが壊れた

    iCloudを参照

    アプリが起動しなくなった

    数回試しても、アプリが起動しない場合は、iOSデバイスの電源を落とし、再び電源を入れてアプリの再起動を試みる。
    それでも起動しない場合は、アプリを削除して、再インストール。
    それでも起動しない場合は、iCloudのストレージ管理においてMailCatを削除して、再起動を試みる。

    動作が遅い

    アプケーションが適切に動作するのに必要なメモリがないか、ネットワーク環境に原因があると考えられる。
    メモリ不足を解消するためには、SpamBlockerを一旦終了し、再度、起動する。
    動作速度が改善されない場合は、使用していないアプリを終了してみる。それでも改善されない場合は、 iOSデバイス(iPhone/iPad)の電源を一旦切り、再度電源を入れる。
    あるいは、改善されたネットワーク環境下での運用を試みる。

    サポート

    使用法のご質問、ご要望、あるいは不具合等のお問い合わせはメールにて承ります。

    問い合わせメール support_seimitsu@jcom.home.ne.jp