携帯電話のメールをパソコンで読む

携帯メール変換
←
概要

このページのプログラムは、携帯電話からパソコンに取り込んだメールを、Becky! や Netscape Mail といったメーラーで読める形式(mbox 形式、または UCB-mail 形式と呼びます)に変換するためのものです。また、これらを"中継"すれば、Outlook Express で読めるようにもできます。

(ここで「取り込む」とは、「メモリーカードや赤外線通信でパソコンにメールをコピーする」という意味です。メール送信機能でパソコンに送る訳ではありません。)

この程度の機能、携帯メーカーのデータリンクソフトで提供してくれてる気がしますが、意外にそうでもなく、私の使っている SH505i でも、「パソコンへのコピーは可能。ただし出力形式はvMessageのみ」というサポート状況です。

つまり、vMessageを読めるメーラーでないとインポートできない訳です。あまり聞きませんよね。(vCardvCalender対応のは多いんけどねぇ)

普段使ってるメーラーで読めたら何が嬉しいかというと、

と、夢が広がります。

プログラムのダウンロード

このリンクを右クリックし、「リンク先を保存」して下さい。

プログラム中の文字コードは、Shift-JIS で、改行コードは CR + LF です。


(2004/ 3/25追加)

perl もモジュールも何もインストールしなくて良い、exe形式版をリリースしました。Windows 2000/XP 限定ですが、ここからダウンロード(ZIPアーカイブ, 682KB)

exe版をご利用の際は、以下の説明文中の、
> perl sh505i_mail.pl
を、
> sh505i_mail.exe
に読み替えてご使用下さい。

プログラムの仕様
  1. 複数のvMessageファイルを読み込み、UCB-mail(mbox 形式)に変換し、標準出力に表示します。
  2. vMessageファイルを携帯電話から取り出す作業は、このプログラムでは行いません。あらかじめ、データリンクソフト等を使ってエクスポートしておいて下さい。
  3. perl5 以降の動作する環境で動作します。その他、いくつかモジュールが必要です。前提環境の節をご覧下さい。
  4. サポートするのは、vMessage形式 → UCB-mail(mbox 形式)の変換のみです。従って、vMessage形式でのコピー(エクスポート)機能を持たない携帯電話(とデータリンクソフト)をお持ちの方には、プログラムの改造を行っていただく必要があります。申し訳ありません。
  5. 重複するメールがあった場合、1通だけ残して、後は削除されます。
  6. vCard形式のアドレス帳が存在する場合、それをメールと同時に読み込むことによって、メールのTo:欄、From:欄に、氏名を追記できます。
  7. UCB-mail の仕様に基づき、本文中にFrom (英字4文字+空白)で始まる行を発見した場合、行頭に>(greater than)を付加します。
  8. .(ピリオド)ひとつだけの行もエスケープするべきかと思いましたが、これが特別な意味を持つのは、POP3, SMTP であり、UCB-mail ではないため、特に処理はしないようにしてあります。
  9. Subject: に含まれる日本語は、JIS コードに変換→BASE64にエスケープされますが、これを行わないようにすることができます。
    プログラム実行時、-s no とオプションを付加して下さい。
    Shuriken Pro 3 のように、Shift-JIS コードべた書きの Subject をシレっと読み込んでくれる、素晴らしいメーラーもあります。
前提環境(perl)

プログラムの実行には、以下の環境が必要です。

perl 5 以降

Windows なら、Active Perl 等で OK です。

(↑リンク先のインストーラを Windows 98 以前で実行する場合、Windows Installer 2.0 を前もってインストールしておく必要があります。 )

5.8.2 にて動作確認致しました。

perl モジュール

Digest::MD5

http://search.cpan.org/~gaas/Digest-MD5-2.33/MD5.pm からダウンロードできます。

メールの重複検出に使ってます(md5_hex 関数)。これ以外のアルゴリズムで重複検出するように改造すれば、これは不要です。

perl モジュール

MIME::Base64
Jcode

http://search.cpan.org/search?dist=MIME-Base64

http://search.cpan.org/~dankogai/Jcode-0.83/Jcode.pm からダウンロードできます。

以上2つは、日本語氏名とサブジェクトの、文字コード変換→BASE64 エンコードに使ってます。

プログラム実行時、-aオプションを指定せず、かつ-s noオプションを指定した場合、これらのモジュールを使った処理には飛ばないようになっております。

よって、これに該当する場合、プログラムの49~50行目にある、
use MIME::Base64;
use Jcode;

をコメントアウトしてください。これらのインストールが不要になります。

作業の流れ

以下の環境における手順を説明します。それ以外の OS や perl インタプリタをご利用の場合、適宜、読み替えて下さい。

前提環境の確認

(exe形式版をご利用の場合、この作業は必要ありません。)(2004/ 3/25追加)

コマンドプロンプトを開き、次の通り入力します。コマンドプロンプトは、[スタート]→[すべてのプログラム]→[アクセサリ]にあります。

C:\xxxxx> cd /D C:\
C:\> perl
use Digest::MD5;
use MIME::Base64;
use Jcode; (←ここでも改行を忘れずに!)

入力の途中で、以下のようなメッセージが表示された場合、モジュールが正しくインストールされていません。モジュールの説明書をお読みのうえ、インストールをやり直してみて下さい。

Can't locate XXXXXX.pm in @INC (@INC contains: /usr/libdata/perl/5.00503/
/usr/local/lib/perl5/site_perl/5.005/ .) at - line 1.

エラーが何も出ずに無事打ち込み終えられたら、モジュールは正しくインストールされています。

Ctrl + Dキーを押し、次にEnterキーを押して下さい。コマンドプロンプトに戻ってきます。

プログラムの実行

(exe形式版をご利用の場合、perl sh505i_mail.plの箇所を、sh505i_mail.exeに置き換えてご使用下さい。)(2004/ 3/25追加)

引き続きコマンドプロンプトに、次の通り入力します。-m mail -a addr -f xxx@docomo.ne.jpの部分は、お使いの環境によって、入力するべき文字が異なりますので、この節の冒頭をよくお読みになり、適宜、書き換えて下さい。

ブラウザウィンドウの横幅によっては、以下のコマンドが、2行以上にまたがって表示されているかもしれませんが、実際は、長い一行のコマンドです。途中で改行せず入力して下さい。

C:\> perl sh505i_mail.pl -m mail -a addr -f xxx@docomo.ne.jp > mobile

すべてのファイルが正しく読み込めた場合、数秒後、コマンドプロンプトに戻ってくるはずです。

これで、C:\mobileというファイルに、UCB-mail が出力されました。

Subject: の日本語をエスケープしない場合(Shift-JIS 文字べた書きにする場合)は、上記の代わりに、次のコマンドを使って下さい。

C:\> perl sh505i_mail.pl -m mail -a addr -f xxx@docomo.ne.jp -s no > mobile
メーラーでのインポート(Mozilla)

上記プログラムで、UCB-mail への変換が終わったら、次は、メーラーへの取り込み(インポート)を実行しましょう。

UCB-mail に対応した、適当なメーラーをインストールします。ここでは、無料で利用できるMozilla Mail & Newsgroups(バージョン 1.6)を使用した例をご紹介します。

Netscape 6 以降でも、だいたい同じ操作だと思います。


Mozilla を初めて起動する時は、下記 1.~ 8. をすべて実施する必要があります。

二回目以降は、4. から始めれば大丈夫です。


  1. Mozilla 1.6 をダウンロードし、インストールします。
  2. [スタート]→[すべてのプログラム]→[Mozilla]→[Mail]を選択します。
  3. メールアカウントの作成と設定を促されるので、適当に作ります。
  4. 一旦、Mozilla Mail & Newsgroups を終了します。
  5. エクスプローラで、次のフォルダを開きます。これは、Mozilla のプロファイルを保管するフォルダです。

    Windows 95, 98, Me (ログインなしの状態)
    C:\Windows\Application Data\Mozilla\Profiles\XXXXX\YYYYY.slt\Mail\ZZZZZ\
    Windows 95, 98, Me (ログインありの状態)
    C:\Windows\Profiles\WWWWW\Application Data\Mozilla\Profiles\XXXXX\YYYYY.slt\Mail\ZZZZZ\
    Windows 2000, XP
    C:\Documents and Settings\WWWWW\Application Data\Mozilla\Profiles\XXXXX\YYYYY.slt\Mail\ZZZZZ\
    ただし、
    C:Windows をインストールしたドライブ。
    WWWWWログオン中のユーザ名。
    XXXXXMozilla で使用するプロファイル名。
    YYYYYランダムな英数字。
    ZZZZZ3. で作成したメールアカウントの名前。
    です。
  6. このフォルダに、C:\mobileをコピーします。
  7. もう一度、[スタート]→[すべてのプログラム]→[Mozilla]→[Mail]を選択します。
  8. メールフォルダ [mobile] が、画面左側のツリーに追加されています。ここに、読み込んだ携帯メールが入っています。

題名に含まれる絵文字は、文字化けしてしまってます。上のスクリーンショットで、題名が"?"になっている箇所です。これは、題名中の絵文字を Mozilla が解釈できないのが原因です。

ただし、本文の絵文字は、もとどおり復元されます。i-mode 絵文字を Windows に登録しておけば、ご覧のように、絵文字の表示も可能です。

メーラーでのインポート(Netscape 4.x)

過去の遺物になって久しいですが、Netscape 4.x (Netscape Communicator)付属のメーラーNetscape Messengerも、UCB-mail に対応しています。

Netscape のトップページから辿るのは、今となっては困難なので、FTP サーバ上のファイルに直リンク。Windows 版の version 4.78 です。


Netscape Messenger を初めて起動する時は、下記 1.~ 8. をすべて実施する必要があります。

二回目以降は、4. から始めれば大丈夫です。


  1. Netscape Communicator をダウンロードし、インストールします。ファイルの関連づけやスタートメニューを確認なしに汚しまくるので注意して下さい。
  2. [スタート]→[すべてのプログラム]→[Netscape Communicator]→[Netscape Messenger]を選択します。
  3. メールアカウントの作成と設定を促されるので、適当に作ります。
  4. 一旦、Netscape Messenger を終了します。
  5. エクスプローラで、次のフォルダを開きます。これは、Netscape Messenger のプロファイルを保管するフォルダです。

    Windows 95, 98, Me, 2000, XP
    C:\Program Files\Netscape\Users\XXXXX\Mail\
    ただし、
    C:Windows をインストールしたドライブ。
    XXXXXNetscape Messenger で使用するプロファイル名。
    です。
  6. このフォルダに、C:\mobileをコピーします。
  7. もう一度、[スタート]→[すべてのプログラム]→[Netscape Communicator]→[Netscape Messenger]を選択します。
  8. メールフォルダ [mobile] が、画面左側のツリーに追加されています。ここに、読み込んだ携帯メールが入っています。

Mozilla と違い、題名に含まれる絵文字も正しく再現しています。Communicator → Mozilla でデグレードしてる数少ない箇所です。

もちろん本文の絵文字も、もとどおり復元されます。

更に Outlook Express へ移行

シェア No.1 の座を得て、なお独自形式にしがみつく Outlook Express。これが一番やっかいです。

UCB-mail(mbox)は読めず、インポートできるメールの種類もごく限られています。なお悪いことに、その数少ないメールも、今となっては入手困難なものばかり。

Outlook Express への
移行が可能なメーラー
入手するには…
Microsoft Exchange 企業向け製品である Exchange server が必要。
Microsoft Internet Mail 絶版。
Microsoft Outlook 後述。
Microsoft Windows Messaging絶版。
Netscape Communicator 唯一残された希望の光。
Netscape mail v2 or v3 …。

現実的なのは、Netscape Communicator へインポートし、そこから Outlook Express へ移行するという手段だけです。

まだ今は、Netscape が Communicator を公開してくれてるから良いけど、これの公開が停まったら、一体我々はどうすればいいんだろう。


Outlook Express の上位版・Outlook は、というと、より劣悪で、CSV ファイルなどからしかインポートできません。使えませんね。


  1. 前節にしたがって、Netscape Communicator へのインポートを実施して下さい。
  2. 一旦、Netscape Messenger を終了します。
  3. Outlook Express を起動します。
  4. [ファイル(F)]→[インポート(I)]→[メッセージ(E)]を選びます。

  5. 「インポート元の電子メールプログラムを選択してください(S)」の選択肢に、[Netscape Communicator]を選び、[次へ(N)]を押します。

  6. 「メッセージの場所」パネルの、[参照(R)]を押します。

  7. 「フォルダの参照」パネルで、

    C:\Program Files\Netscape\Users\XXXXX\Mail

    を選択し、[OK]を押します。ただし、

    C:Windows をインストールしたドライブ。
    XXXXXNetscape Messenger で作成したプロファイル名。

  8. 「メッセージの場所」パネルに戻ってきます。[次へ(N)]を押します。

  9. 「選択されたフォルダ(S)」を選び、その下の枠内の[mobile]を選択し、[次へ(N)]を押します。

  10. 以上で完了です。[完了]を押します。

ちなみに、サブジェクト・本文とも、絵文字は再現されます。

今後の課題

このプログラムは、vMessage形式でのエクスポート機能を持ったデータリンクソフト等がないと何もできません。

全携帯のデータリンクソフトに合わせてプログラム作るのは面倒なので、携帯→PC 移行は「携快電話」とかに任せて、こっちは、「携快電話」のエクスポート形式に併せてプログラム組んだ方が楽な気がします。(ソフトは買わんといけんくなるけど)

主な製品のカタログスペック(エクスポートの)をビックカメラで調べてきたら、次のような状況でした。

製品名エクスポート形式
携帯万能12CSV, テキスト, Eml, Outlook
携快電話9Eml
ケータイ・リンク7Eml

Eml が本命な感じですが、携快電話は、内部保存形式が XML なので、パーサーさえ書ければ、既製の perl モジュール使って一気に読み込めたりしないだろうか。