2013年1月13日日曜日

imoten - iモードメールを任意のデバイスで利用する(手順編)

前回の投稿で、

「imoten」というJavaベースのプログラムを利用すると、様々な端末・環境(たとえばiPhoneやiPad、Androidスマートフォン、タブレット、PCなど、メールソフト・アプリを利用できる環境)で「docomo.ne.jp」メールアドレスが送受信できるようになる

ことを書いた。ので、実際の手順をまとめてみようと思う。もちろん備忘録☆ミ
これを書くにあたり、以下のWebサイトが非常に有用であり参考になったので掲載しておく。

imoten - imode.netのメールをSMTPで転送するプログラム - Google Project Hosting


【CentOS6x64】さくらインターネットのVPSでのimotenの設定【Gmail版】
docomoでiphoneを使う imoten設定 使い方(windows)

なお、今回の方法ではサーバーにSSL経由で接続するプロセスを盛り込んでいないため、このまま実用するとセキュリティー上問題がある。今後、それを可能にする記事を書く予定ではあるが、すでに解説してあるサイトもあるため、それらもあわせて実行するのがよい。
以上のことを納得した上で、自己責任のもとで実行していただきたい。

--

1. imotenを導入するメリット・デメリット

1.1 メリット

・メール送受信ソフトが利用できる環境であれば、種類を問わずdocomoアドレスを送受信できる
・「imoco」などでは利用できなかった添付ファイルを扱うことができる
・キャリアメールの安心感w

1.2 デメリット

・imotenを動作させるサーバーが必要
 (自宅サーバー→0円、VPSなど→最低490~980円/月)
・絵文字が完全には動作しない
・iモード.net(210円/月)への加入が必要





--

2. 必要なもの

2.1 ハード

・iモードメールを受信できるフィーチャーフォン
  iモード.netの認証に必要。
  必要であれば、SIMカードアダプタも用意する。
・実際にdocomoアドレスの送受信に利用するデバイス
  スマートフォンやPC。当たり前ですなw
・imotenを動作させるサーバー
  Javaが動作可能な環境。CentOSとUbuntuで動作確認。今回はCentOS 6.3 64bitで解説。
  ポート開放や通信路の暗号化、CUIでのファイル編集などの知識を必要とする。
  そのため、作業と並行して十分に勉強されたい。
・作業用のPC
  OS問わず。自宅サーバーなど、SSH接続などをせずとも環境構築が可能であれば不要。


2.2 ソフト

imotenプログラム
  執筆時現在の最新バージョンは1.1.37。
  ※サーバーでダウンロードするため、事前のダウンロードは不要。
Java SE Development Kit
  配布サイトでの推奨バージョンは6(最新:6u37)。7u9でも動作を確認。
・SSH接続環境・プログラムの例
  Windows→TeraTerm、Mac→ターミナル、Linux→ターミナル

2.3 契約など

・iモード 315円/月
  作業に入る前に、好きなメールアドレスに変更しておく。
・iモード.net 210円/月
  My docomoまたはdocomo携帯から「151」→プッシュキー「2」→「2」からオペレーターを通じて契約可能。
  利用可能になるまでにiモードメールを利用した認証が必要。後述。
・Gmailアドレス
  imoten利用専用のメールアカウントを新規に取得することを強く薦める。
  iPhone、iPadで利用するのであれば、2つ用意することを薦める。
・VPS(仮想プライベートサーバー)
  自宅に常時稼働可能なサーバーを用意できない場合は契約する必要がある。
  利用するVPSは自由に選べばよい。
  格安VPSであればDTI ServersMan@VPS(490円/月)、安心どころであればさくらのVPS(980円/月)がよいだろう。
・ドメインサービス
  IPアドレスでサーバーを指定してもよいが、覚えやすい英数字のドメインをIPアドレスに順引きするのが適当である。
  自宅サーバーなどで固定グローバルIPアドレスが割り当てられない場合は、DDNS(ダイナミックDNS)サービスが必要。
  DNSサービスは、お名前.comムームードメインVALUE DOMAINあたりが有名。
  DDNSサービスは、ieServer.NetMyDNS.JPDynamic DO!.jpあたりが有名。
  それぞれのサービスを比較して、自分の用途とお財布と相談してサービスを決めてほしい。

2.4 iモード.netの設定

先に挙げたとおり、iモード.netを利用するには、「ワンタイムパスワード」を利用した本人確認が必要となる。
登録後初回ログインの際にそれが要求される。一度認証してしまえば次回以降は不要となるため、万一iモード対応携帯電話を持っていない場合は、友人などから借りることで対応できる。
手順については、以下のWebサイトを参照されたい。

ワンタイムパスワード | ヘルプ | iモード.net | NTTドコモ

 --

 3. サーバーの設定

 3.1 基本環境

インターネットに常時接続しており、外部から&外部へ接続できる環境が必要。
その際、不用意に環境を構築すると悪意のあるアクセスによってサーバーがダウンしたり、環境を改ざんされたりデータが漏えいする危険性があるため、ポート開放は最低限におこない、アクセス制限の措置をとること。

imotenはJavaプラットフォームで動作するため、Windows、(Mac)OS X上で動作させることも可能だと思うが、自ら検証するには至っていない。サーバーと言えばCentOS、的な部分が少なからずあるため(笑)、それを利用するとともに、Ubuntu 12.04でも動作を確認している。

3.2 サーバーへの接続方法

作業PCからサーバーへ接続する方法を、Windows、OS X、Linuxのそれぞれまとめておく。利用しているOSを用いた接続手順を確認されたい。

・Windowsの場合

①TeraTermを起動し、「TCP/IP」の「ホスト(T)」にホスト名またはサーバーのIPアドレスを入力
 ②「TCPポート#(P)」にSSH接続用ポート番号を入力し、「OK」をクリック
 ③初回接続時、「セキュリティ警告」ダイアログが現れるので、「続行」をクリック
 ④「SSH認証」ダイアログが現れるので、ログインに利用するユーザー名、パスワードを入力、「OK」をクリック
 ⑤ [root@vvv.xxx.yyy.zzz ~]#  と表示されたら、サーバーへの接続が完了する。
  ※上はrootユーザーでログインした場合。

・OS Xの場合

①ターミナルを起動し、以下のコマンドを実行。

     $ ssh -p 22 root@vvv.xxx.yyy.zzz  ←サーバーにrootユーザーで22番ポートを使用して接続

※サーバーのssh接続用のポートが22番の場合。別途設定した場合やVPS事業者により異なる。
  ※rootユーザーではなく一般ユーザーとして接続してもよい。その場合はsuコマンドやsudoコマンドで後の作業を進める。
 ②初回接続時、 ~Are you sure you want to continue connecting (yes/no)?  と表示されるので、「 yes 」を返す
 ③ root@vvv.xxx.yyy.zzz's password:  と表示されるので、パスワードを入力、エンターキーを押す
 ④ [root@vvv.xxx.yyy.zzz ~]#  と表示されたら、サーバーへの接続が完了する。
  ※一般ユーザーでログインした場合、上の「#」が「$」となっている。
  ※サーバーにより、「[ ]」が表示されないなど一部表記が異なる場合がある。

・Linuxの場合

上の「・OS Xの場合」と一緒の手順でOK・・・のはず。(未検証)

3.3 Javaのインストール

■インストーラーのダウンロード

まず、 作業用PCにてJDKのインストーラーをダウンロードする。注意したいのは、ダウンロードするパッケージのOSは、作業用PCのOSではなくサーバーのOSを選択すること。
ちなみに、CentOSであればRed Hat系であるため「.rpm」パッケージをダウンロードすればよいが、UbuntuはDebian系であるためすんなりとはいかない。

Ubuntuの場合、Oracle社(以前のSun Microsystems社)が配信している最新のJDK(執筆時現在7u9)をインストールしたければ、tar.gzファイルを展開した後、そのディレクトリを(たとえば)「/usr/lib/jvm」以下にmkdirの後mvし、関連付けの設定などを行わなければならないため、非常に面倒である。そのため、一世代前となるが、JDK 6をインストールすることにする。なので、ここではダウンロードしなくてもよい。
もし、Oracle社が提供しているJDK 7を手動でインストールしたければ、「Ubuntu JDK 7」などで検索すると詳しいインストール方法がわかるはず。

なお、サーバーを直接操作できるのであれば、サーバーで直接ダウンロードしてもよいが、ブラウザが必要となるだろう。

■インストーラーをサーバーへコピー

次に、ダウンロードしたインストーラーをサーバーへ転送する。ただし、サーバー機のOSにUbuntuを選んだ場合は、この作業は不要。

・Windowsの場合

①TeraTermでサーバーに接続した後、インストーラーを保存したいディレクトリに移動(ここでは「/temp」ディレクトリ)

    $ cd /temp  ←/tempディレクトリに移動

※コマンドの説明については、「3.4 必要なライブラリのインストール」の項を参照
  ※「/temp」ディレクトリが存在しなければ、以下のコマンドで作成してもよい。

     # mkdir /temp  ←「/」以下に「temp」ディレクトリを作成

②Windowsにて、インストーラーのアイコンをTeraTermウインドウにドラッグ&ドロップ
 ③「ファイル転送を行いますか?」と書かれたダイアログが現れたら、「SCP」をクリック
 ④①のディレクトリにファイルが転送される

・OS Xの場合

①OS Xにてターミナルを起動し、インストーラーがあるディレクトリ(ここではDesktopディレクトリ)に移動

    $ cd /Users/username/Desktop  ←usernameユーザーのDesktopディレクトリに移動

②以下のコマンドを実行して、インストーラーをサーバーの「/temp」ディレクトリに転送

    $ scp jdk-7u9-linux-x64.rpm root@vvv.xxx.yyy.zzz:/temp  ←サーバーの「/temp」ディレクトリに転送

※サーバーのIPアドレスを「vvv.xxx.yyy.zzz」の部分に置き換えて入力
  ※インストーラーのファイル名はダウンロードしたものを入力。上は一例。
 ③ Password:  と表示されるので、サーバーのrootパスワードを入力、エンターキーを押す
 ④ファイル名と転送率、転送レートが表示され、ファイルがサーバーへ転送される

・Linuxの場合

基本的には上の「・OS Xの場合」と一緒。LinuxとOS Xのディレクトリ構成がやや違うため、その部分のみ注意する。
 ①Linux(作業PC)にてターミナルを起動し、インストーラーがあるディレクトリ(ここではdownloadディレクトリ)に移動

    $ cd /home/username/download  ←usernameユーザーのdownloadディレクトリに移動

②「・OS Xの場合」の②以降を参照

■Javaインストール作業

この作業はサーバー上で行うため、サーバーにSSH接続でログインしておくこと。

・CentOSの場合

①先ほどインストーラーを転送したディレクトリ(ここでは「/temp」ディレクトリ)に移動

    $ cd /temp  ←「/temp」ディレクトリに移動

※tempディレクトリ内にインストーラーがあるかどうかlsコマンドで確認するとよいだろう。
 ②以下のコマンドを実行

    # rpm -ivh jdk-7u9-linux-x64.rpm  ←CentOSにJDKをインストール

※ダウンロードしたJDKのバージョン("X"u"X")や32bit・64bitの違い("i586"or"x64")によりコマンドを適宜修正する。
 ③インストールの進捗状況が表示され、インストールが完了する

・Ubuntuの場合

Ubuntuサーバーではadd-apt-repositoryコマンドが使えないため、事前に以下のコマンドを実行しておくこと。

   # aptitude install python-software-properties  ←python-software-propertiesをインストール

これで、Ubuntu、Ubuntuサーバーともにadd-apt-repositoryが使えるようになる。
 ①以下のコマンドを実行

    # add-apt-repository 'deb http://archive.canonical.com/ lucid partner'  ←リポジトリを追加

②以下のコマンドを実行

    # apt-get update  ←最新のパッケージリストをダウンロード

③以下のコマンドを実行

    # aptitude install sun-java6-jdk sun-java6-jre java-wrappers  ←必要なパッケージをインストール

※インストールするパッケージは、「sun-java6-jdk」、「sun-java6-jre」、「java-wrappers」の3つ。
 ④インストールの進捗状況が表示され、インストールが完了する

3.4 ファイアウォールの設定(ポート開放)

imotenを動作させるにあたって、SMTPサーバーの通信用にポートを開放する必要がある。
ポート番号は基本的には何番でもよいが、一般的に他の用途で使用されるポート番号(ポート番号 - Wikipediaあたりを参照)を避けたほうがよい。Submissionポート(587番)や49152~65535番あたりから一つ決めるとよいだろう。
必要なポートの開放には、大きく分けて3つの壁が存在する。

 ■サーバーのファイアウォール

   OS搭載のファイアウォールのこと。Linuxでは「iptables」というパケットフィルタリング機能で制御をおこなうのがよい。
  基本的にはすべてのポートを閉じた上で80番(WWW)、21番(FTP)などの必要なポートを例外として設定する。

 ■(自宅サーバー)ルーターのアクセス制御  

   同じネットワーク内に機器が複数あると、機器の通信路の切り替え(ルーティング)を行う必要がある。
  外部からアクセスがあった場合、それを受け付ける機器を指定しておかないと、その機器にアクセスできない。
  つまり、80番ポートへのアクセスは192.168.XXX.11へ、21番ポートは192.168.XXX.12へ、のような割り振りが必要。
  これをポートマッピングという。方法についてはルーターの説明書等を参照されたい。

■プロバイダー(ISP)やVPSサービス事業者による制限

要は、宅内または(遠隔)サーバー自体の設定ではなく、通信事業者やVPSなどのサービス事業者のお話。
  有名なものに、「OP25B(Outbound Port 25 Blocking)」という概念・方法がある。
  Eメールやインターネットの仕組みを少しかじったことのある人であればおそらく知っているであろうものである。
  メールを送信するとき、SMTPサーバーというものがそれを処理する。
  SMTPサーバーは通常TCP25番ポートを利用するが、スパムメール送信の踏み台にされる問題が多発した。
  そのため、ISPやサービス事業者が別のポート(587番が多い)を用意し、25番ポートをふさぐという対策法がとられた。
  つまり、いくら25番ポートを利用してメールの送信をしようとファイアウォール設定をしても使えないのだ。

  このように、事業者側でいくつかのポート制限をしているケースが存在する。
  実際、imotenの設定の項では、25番以外のポートを利用すべきと考えている。
  サーバーやルーターの設定をしっかりしたのに・・・なんて時はまずISPやVPS事業者の仕様等を確認。

3.5 必要なライブラリのインストール

Linuxでのimotenの動作には、glibc(GNU C Library)という標準ライブラリの中の「ld-linux.so.2」を利用する。
しかし、一部のディストリビューションやバージョンによっては、インストールされていない場合がある。
その場合、このライブラリを手動でインストールする。下記はCentOSでのコマンド。

   # yum install ld-linux.so.2 

「#」以降を入力、エンター。root権限で実行すること。rootのPasswordは把握しといてね♪
コマンドの前に「#」がついていたら、それはroot権限で実行しているというお約束。
もし、「#」ではなく「$」や「%」だったら、root権限なしの一般ユーザーでも実行可能なコマンド。
もちろん、root権限であれば、権限の必要がないコマンドも実行できる。
sudoでもOKと思うが、その後の作業はほとんどroot権限で行うため・・・ね。

--

4. imotenのインストール

作業に入る前に、上記の必要なもの・プログラムをあらかじめ用意・ダウンロードしておくこと。

4.1 インストールディレクトリの作成

今回は、「/usr/local」ディレクトリの中に「imoten」というディレクトリを作り、そこにインストールする。
コマンドは以下。

   # mkdir /usr/local/imoten  ←/usr/localディレクトリの中にimotenディレクトリを作成

実際に作られているかどうか確認するときは、以下のコマンドを実行する。

   $ ls /usr/local  ←/usr/localディレクトリの中のファイル、ディレクトリを表示

もしくは

   $ cd /usr/local  ←/usr/localディレクトリに移動
   $ ls  ←現在のディレクトリの中のファイル、ディレクトリを表示

/usr/localディレクトリの中にあるファイル、ディレクトリが一覧表示される。この中に「imoten」ディレクトリがあれば作成できている。

4.2 インストール作業

まず、imotenを/usr/local/imotenディレクトリ内にダウンロードする。

   $ cd /usr/local/imoten  ←/usr/local/imotenディレクトリに移動
   # wget "http://imoten.googlecode.com/files/imoten-1.1.37.zip"  ←ダウンロード

これで、imotenディレクトリの中に、「imoten-1.1.37.zip」ファイルがダウンロードされる。不安であれば、lsコマンドでファイルの存在を確認するとよい。
次に、imotenディレクトリの中でダウンロードしたファイルを展開する。

   # unzip imoten-1.1.37.zip  ←圧縮ファイルを同じディレクトリに展開する

そうすると、imotenディレクトリ内に、5つのディレクトリと7つのファイルが展開されているはずだ。展開が完了したら、「imoten-1.1.37.zip」は削除しても構わない。

   # rm imoten-1.1.37.zip  ←imoten-1.1.37.zipを削除

これで、ファイルの展開が完了したことになる。
次は、パーミッションの付与。いくらプログラムを拾ってきても、アクセス・実行権限がなければ・・・ね。

   # chmod 755 /usr/local/imoten/bin/imoten  ←bin/imotenプログラムに権限を付与

   # chmod 755 /usr/local/imoten/bin/wrapper*  ←ファイル名の最初に「wrapper」とつくプログラムに権限付与

これでimotenプログラムを実行することができるようになる。
次は、imotenの動作に必須の設定。

4.3 imotenの設定

ここがimoten導入で最もつまづくポイントと言っても過言ではない。
個人的に、ターミナル(コマンドライン)上でファイルを編集する部分に一番神経を使ったw
が、ここまできたのだから、ぜひ頑張ってほしい。

まず、もともと存在する「imoten.ini」ファイルを削除する。

   # rm -f /usr/local/imoten/imoten.ini  ←「imoten.ini」ファイルを削除

※「-f」オプションは、「警告なしで削除」を意味する。
次に、新しくimoten.iniを作成、編集する。

   # vi /usr/local/imoten/imoten.ini  ←imoten.iniファイルを作成、編集

※viコマンドは、指定ファイルがあればそれを編集、なければ新規作成ののち編集を実行する

--

ここで、viコマンドの基本的な使い方を軽くまとめておく。
まず、「メモ帳」や「秀丸」などのエディタと比べて大きく違うのは、「コマンドモード」と「挿入モード」の2つの操作系があるということ。
■コマンドモード・・・編集行の移動やファイルの保存などを行うことができる
■挿入モード・・・文字の入力ができる
この2つのモードを行き来しながらファイルを操作していく。
以下、最低限覚えるべきコマンドを書いておく。

・viの操作

■ファイルの(作成、)編集
   $ vi [ファイル名] 
※実行直後にコマンドモードとなる
■ファイル編集の終了(「:」を忘れずに!)
  :q ・・・viを終了
  :q! ・・・編集内容を保存せずviを終了
  :wq ・・・編集内容を保存してviを終了

・コマンドモードの操作

コマンドモードでは、入力したアルファベットや数字、記号などはすべてコマンドとして扱われる。
■カーソル移動
  h ・・・一文字左(=「←」キー)
  j ・・・一文字下(=「↓」キー)
  k ・・・一文字上(=「↑」キー)
  l ・・・一文字右(=「→」キー)
■挿入モードへ移行
  a ・・・現在のカーソルの右側に挿入
  o ・・・現在の行の下に一行追加して挿入
■その他
  u ・・・直前の操作の取り消し
  x ・・・カーソル位置の文字を一文字消去

・挿入モードの操作

挿入モードでは、入力した文字がそのままファイルに打ち込まれる。
挿入モードのときは、コマンドライン最下部に「―INSERT―」と表示される。
viのバージョンによっては、挿入モードでも矢印キーでカーソル移動ができる。

■コマンドモードへ移行
  「Esc」キー ・・・コマンドモードへ移行

現在どちらのモードで編集しているかが分からなくなったときは、とりあえず「Esc」キーを押すとよい。
そうすれば、確実にコマンドモードになるからだ。
ちなみに、コマンドモードの最中に「Esc」キーを押しても何も起こらない。

--

設定を始める前に、今一度、以下の内容を確認しておく。
・iモード.netのID
・iモード.netのパスワード
・Gmailのメールアドレス(=アカウント@gmail.com)
・Gmailのパスワード
・サーバーのSMTP通信に利用するポート番号(「3.4 ファイアウォールの設定」を参照)

それでは、実際にimotenの設定を行なっていく。

まずは「imoten.ini」ファイルから。
1行目から、順番に以下の内容を記述していく。その際、記述する内容についてもふれる。
なお、内容の説明については、展開したimotenディレクトリ中の「Parameter.txt」に記述している内容をそのまま転載するため、ここを見るより上のテキストファイルを確認した方がよいだろうw

------imoten.iniへの記述内容ここから------

docomo.id=(iモード.netのID)
docomo.passwd=(iモード.netのパスワード)

smtp.server=smtp.gmail.com
smtp.port=587
smtp.tls=true
smtp.from=(転送先のGmailメールアドレス)
smtp.auth.user=(転送先のGmailメールアドレス)
smtp.auth.passwd=(Gmailのログインパスワード)

forward.to=(転送先のGmailメールアドレス)
forward.rewriteaddress=false
forward.headertobody=false
forward.subject.charconvfile=../conv/genDocomo2sb.csv

mail.encode=UTF-8
mail.contenttransferencoding=7bit
mail.fontfamily=Hiragino Kaku Gothic ProN
mail.emojiverticalalign=text-bottom
mail.emojisize=15px
mail.emojiverticalalignhtml=baseline
mail.emojisizehtml=14px

emojireplace.subject=false
emojireplace.body=inline

sender.smtp.port=(「3.4 ~」で開放したポート番号)
sender.smtp.user=(適当なアカウント名)
sender.smtp.passwd=(適当なパスワード)
sender.charconvfile=../conv/unicode2docomo.csv,../conv/genSb2docomo.csv
sender.convertsoftbanksjis=true
sender.stripiphonequote=true
sender.docomostylesubject=true


imodenet.checkinterval=10
imodenet.logininterval=10
save.cookie=true

------imoten.iniへの記述内容ここまで------

以上の内容をimoten.iniファイルへ記述していく。基本的にはコマンドモードで編集するが、コピー&ペーストが可能なSSHクライアントソフトを使っているのであれば、それを利用するのが早い。

-------- 設定の説明ここから --------

docomo.id
  imode.netのログインID。

docomo.passwd
 imode.netのログインパスワード。

smtp.server
 転送に使用するSMTPサーバのホスト名もしくはIPアドレス。

smtp.port
 転送に使用するSMTPサーバのポート番号。
 デフォルト25。

smtp.tls
 転送に使用するSMTPサーバがTLSを使用する場合[true]。
 TLSを使用しない場合[false]。
 デフォルト[false]。

smtp.from
 SMTPサーバへ送信する自分のメールアドレス。
 SMTPコマンドの[MAIL FROM]で指定します。
 [forward.rewriteaddress]を[true]にした場合、Fromヘッダの
 アドレスになります。

smtp.auth.user
 SMTPサーバが認証を必要とする場合、ユーザ名を指定します。

smtp.auth.passwd
 SMTPサーバが認証を必要とする場合、パスワードを指定します。

forward.to
 転送時のTOのアドレスです。複数ある場合[,]区切りで指定します。
 自分のiモードメールアドレスを設定してループしないように気をつけてください。

forward.rewriteaddress
 [true]の場合、転送時のFROM,TO,CCヘッダをsmtp.from,forward.to,forward.ccに
 置き換えます。
 [false]の場合、imodeメールのFROM,TO,CCを転送時のメールに指定します。
 デフォルト[true]。

forward.headertobody
 [true]の場合、メールの先頭にimodeメールのFrom,CCなどの情報を追加します。
 添付ファイルに「ファイル制限(コピー禁止)」が掛かっていて添付ファイルが転送されない場合、
  その情報も付加されます。
 デフォルト[true]。

forward.subject.charconvfile
  転送時に題名の特定の文字を置き換えるための対応表のCSVファイルを指定します。
  絵文字を置き換えるのが主な目的ですが、絵文字以外の文字も置き換え可能です。
  ソフトバンクiPhoneに転送する場合は ../conv/genDocomo2sb.csv を指定します。
 このファイルはカンマ区切りで複数ファイルを指定することができます。複数ファイルを指定した
 場合は指定された順番にファイルの中身を読み込みます。

mail.encode
 メールのエンコーディングを指定します。
 ISO-2022-JPだと機種も依存文字が送信できないので、デフォルトでは
 UTF-8で送信します。もし使用しているメーラーがUTF-8に対応していない場合、
 iso-2022-jpなど別のエンコーディングを指定してみてください。
 その場合は、下に説明している conf/wrapper.conf の設定も
 デフォルト[UTF-8]

mail.contenttransferencoding
 メールの本文部分のContent-Transfer-Encodingを指定します。
 文字化けする場合、[7bit]を指定してみてください。
 デフォルト ライブラリ任せ

mail.fontfamily
 転送メール本文に使用するcssのfontfamilyの値を指定します。
 デフォルトは未設定でメーラのデフォルトフォントになります。

mail.emojiverticalalign
 転送メール本文にインライン添付するドコモ(基本・拡張)絵文字のimgタグの縦位置を調整。cssのvertical-alignの値を指定します。
 デフォルト[middle]

mail.emojisize
 メール本文にインライン添付するドコモ(基本・拡張)絵文字のimgタグのpixelサイズを指定。cssのwidth,heightの値を指定します。
 デフォルトはwidth,height未指定になります。

mail.emojiverticalalignhtml
 転送メール本文にインライン添付するデコメ絵文字のimgタグの縦位置を調整。cssのvertical-alignの値を指定します。
 未設定時は[mail.emojiverticalalign]で設定した値になります。それも未設定の場合は[middle]になります。

mail.emojisizehtml
 メール本文にインライン添付するデコメ絵文字のimgタグのpixelサイズを指定。cssのwidth,heightの値を指定します。
 未設定時は[mail.emojisize]で設定した値になります。それも未設定の場合はwidth,height未指定になります。

emojireplace.subject
 [true]を指定すると、メールの題名に絵文字があった場合にその絵文字を[はれ]の様な
 説明ラベルに置き換えます。
 [false]を指定すると、そのまま送信します。その場合、PCで表示すると絵文字は
 正しく表示されません。
 デフォルト[true]。

emojireplace.body
 [inline]の場合、絵文字をGMailの画像に置き換え、その画像をメールにインラインで添付します。
 メールはHTMLメールに変換されます。
 [link]の場合、絵文字をGMailの画像へのリンク< img src="..." />に置き換えます。
 絵文字を表示するには、メール閲覧時インターネットにつながっている必要があります。
 メールはHTMLメールに変換されます。
 [label]の場合、絵文字をはれ]の様な説明ラベルに置き換えます。
 [table]の場合、[forward.subject.charconvfile]に指定された対応表に従って題名と同様に絵文字の置き換えを行います。
 [none]の場合、絵文字の置き換えを行いません。PCで表示すると絵文字は正しく表示されません。
 デフォルト[inline]。

sender.smtp.port
 imode.net経由でメールを送信する場合、imotenが動作しているPCで
 SMTPを待ち受けるポート番号を指定してください。
 デフォルトはSMTPの待ち受けを行いません。
 imode.net経由でメールを送信する場合は必ず指定してください。

sender.smtp.user
 imode.net経由でメールを送信する場合の認証ユーザ名を
 指定します。

sender.smtp.passwd
 imode.net経由でメールを送信する場合の認証パスワードを
 指定します。

sender.charconvfile
 imode.net経由でメールを送信する場合にメールの内容の特定の文字を置き換えるための
 対応表のCSVファイルを指定します。絵文字を置き換えるのが主な目的ですが、絵文字以外の
 文字も置き換え可能です。
 CSVファイルは文字コードUTF-8で保存してください。
 相対パスを指定した場合、binディレクトリからの相対パスになります。
 このファイルはカンマ区切りで複数ファイルを指定することができます。複数ファイルを指定した
 場合は指定された順番にファイルの中身を読み込みます。

 CSVフォーマット:
  置換元の文字のUnicode,置換先の文字のUnicodeもしくは置換先の文字列
 例:
  # 「あ」を「い」に置き換える
  3042,3044
  # 「A」を「[全角A]」に置換える
  FF21,[全角A]

 置換先が0~9,a~z,A~Zだけで構成されている場合はUnicode、そうでない場合は文字列として
 処理されます。「#」で始まる行はコメント行となります。

 convディレクトリにサンプルファイルがあります。[../conv/~]のように設定して使用することができます。
 ・SbToDocomo.csv
  wkazuwさんが作成してくれたソフトバンクの絵文字をドコモの絵文字に変換してくれます。
 ・gen(Au/Sb)2docomo.csv
  「http://emoji4unicode.googlecode.com/svn/trunk/data/emoji4unicode.xml」から
  スクリプトで生成した変換表で、Auもしくはソフトバンクの絵文字を、ドコモの絵文字もしくは
  その絵文字があらわす文字列に変更してくれます。

sender.convertsoftbanksjis
  [true] imode.net経由でメールを送信する場合に、ソフトバンクiPhoneのShift_JISからUnicodeへの
  変換を補正します。
  [false] JavaのShift_JIS -> Unicode 変換をそのまま使います。
  デフォルト false

sender.stripiphonequote
 iPhoneでメール返信を行うと元メールが必ず引用されます。このパラメータがtrueの場合、
 メールの引用部分(引用開始部からメール末尾まで)を自動的に削除してから送信します。
 デフォルト[false]

sender.docomostylesubject
 iモードメールでは返信を繰り返すと「Re3:」のように件名の数字が増えていきます。
 通常のメーラーからこのメールに返信すると「Re: Re3:」のようになってしまいますが、
 このパラメータをtrueに設定すると「Re4:」と受け取ったメールに1加算した件名に
 に変換してから送信します。
 trueにした場合でも、メールの宛先(To)にdocomo.ne.jpが含まれていない場合は動作しません。
 デフォルト[false]

imodenet.checkinterval
 imode.netで新着メールをチェックする間隔(秒)を指定します。
 デフォルト[60]。

imodenet.logininterval
 imode.netへのログインが失敗した場合、再度ログインを行うまでの時間(秒)を
 指定します。
 PCからiモード.netにログインした場合、imotenはログアウトして設定時間後に
 再度ログインを行います。
 PCでもiモード.netを使用する場合、操作する時間分だけ余裕を持った時間を指定して下さい。
 デフォルト[600]。

save.cookie
 [true]の場合、ログイン時のCookie情報を保存します。
 起動時にこの情報を使用してアクセスします。
 プログラムやPCの再起動などで数分程度の停止の場合は、
 ログイン処理が省略でき、ログインメールが送信を防ぐことができます。
 [false]の場合、Cookie情報は保存されません。
 デフォルト[true]。

-------- 設定の説明ここまで --------

先にも述べたとおり、「Parameter.txt」には他の有用なパラメーターが記載されているため、ぜひ確認されたい。
imoten.iniの編集が終わったら、「:wq」コマンドで保存するのを忘れずに。

--

次に、既に存在する「conf/wrapper.conf」ファイルをviコマンドで編集する。

   # vi /usr/local/imoten/conf/wrapper.conf  ←wrapper.confファイルを編集

14行目の「wrapper.java.command=java」で、インストールしたJavaのディレクトリを指定する。
ここでは、Javaが「/usr/local/java」にインストールされているものとして話を進める。もし別のディレクトリにインストールされているのであれば、それを指定する。

変更前: wrapper.java.command=java
  ↓
変更後: wrapper.java.command=/usr/local/java

また、51行目の「#wrapper.app.parameter.2=immf.ServerMain」の先頭についている「#」(コメントアウト記号)を消し、有効にする。

変更前: #wrapper.app.parameter.2=immf.ServerMain
  ↓
変更後: wrapper.app.parameter.2=immf.ServerMain

編集が終わったら、保存をして編集モードを終了する。

--

最後に、サーバーが不意に再起動した場合でも自動的にimotenが起動するよう、スタートアップに登録しておく。

   # ln -s /usr/local/imoten/bin/imoten /etc/init.d/imoten  ←imotenのリンクファイルを作成
   # /sbin/chkconfig --add imoten  ←imotenをスタートアップに追加

これで、サーバーが再起動しても自動的に起動するようになる。

--

それでは、いよいよimotenを起動する。imotenを起動するにあたり、それまで別のクライアントソフト(IMoNiやimocoなど)でメールの送受信を行なっていた場合は、それらで送受信しないようにしておかないとログイン通知メールが大量発生してしまうため、動作しないようにしておくこと。

   # /etc/init.d/imoten start  ←imotenを起動

これで、サーバーがメール受信を確認するとGmailメールアドレスに転送され、メールを確認することができる。

5. 送受信の設定

これでやっとスマートフォンやPCなどで「docomo.ne.jp」メールアドレスを送受信する準備が整った。これから、実際に送受信する手順をまとめる。
大まかな設定内容としては、
①受信(IMAP)サーバーには、転送先のGmailを指定する
②送信(SMTP)サーバーには、用意したサーバーを指定する
の2つ。特に、②が重要。送信サーバーを自前のものに指定できないメーラーでは送信ができないため、それが可能なメーラーで実行すること。

ここでは、iOS搭載機(iPhoneやiPod touchなど)、Android搭載機(XperiaやGalaxy、タブレットなど)、Windows PCの3種類で設定を行う。
iOS代表は、iPod touch 5th(iPhoneを手放したため)・「メール」アプリ。
Android代表は、Xperia X10・「K-9 Mail」アプリ。
PC代表は、Windows 8 Pro・「Thunderbird」ソフト。

なお、私の環境だけかもしれないが、サーバーと同じネットワーク内で設定・送信を行おうとすると接続エラーが発生するため、自宅にサーバーを導入した場合は、サーバーへの接続は別の接続網を利用する必要がある。つまり、サーバーとスマートフォン・PCは異なるグローバルIPアドレスでなければならない。
ではどうすればよいのか?もっとも手軽(?)なのは、スマートフォンやモバイルルーターなどの回線を利用すること。PCの場合は、先の回線を利用してテザリングを行う、公衆無線LANを利用するなどで対応できる。プロキシをはさむことで対応できるかもしれないが、未検証である。

5.1 iOS

①「設定」をタップ

②「メール/連絡先/カレンダー」をタップ

③「アカウントを追加...」をタップ

④「Exchange」をタップ

⑤転送先GmailメールアドレスとGoogleアカウントのパスワード、アカウントの説明を入力、「次へ」をタップ

⑥Googleアカウントのユーザ名、パスワードの入力を確認、「次へ」をタップ

⑦アカウント情報が正しければ、すべての欄の右側にチェックがつく

⑧「メール」のみオンに、「連絡先」「カレンダー」はオフにして「保存」をタップ

⑨「アカウント」欄に⑤のアカウント(の説明)が追加されていることを確認、再度「アカウントを追加...」をタップ

⑩「その他」をタップ

⑪「メールアカウントを追加」をタップ

⑫「名前」は適当、「メール」はGmailメールアドレス、「パスワード」はGoogleアカウントのパスワード、「説明」は識別用の内容をそれぞれ入力、「次へ」をタップ。

⑬-1 受信メールサーバの「ホスト名」は「imap.gmail.com」、「ユーザ名」はGoogleアカウントのユーザ名、「パスワード」はGoogleアカウントのパスワードをそれぞれ入力

⑬-2 送信メールサーバの「ホスト名」は用意したimotenサーバーのドメインまたはIPアドレス、「ユーザ名」、「パスワード」は「4.3 imotenの設定」で決めた適当なアカウント名、パスワードをそれぞれ入力、「次へ」をタップ

⑭「SSLで接続できません」というダイアログが現れるが、「はい」をタップする

⑮「検証中」の文字が現れたのち、サーバ設定が正しければすべての欄の右側にチェックがつく

⑯「メール」はオン、「メモ」はオフにして「保存」をタップ

⑰「アカウント」欄に⑫のアカウント(の説明)も追加されていれば設定完了となる

5.2 Android

①「K-9 Mail」アイコンをタップ

②転送先のGmailメールアドレス、Googleアカウントのパスワードを入力、「手動設定」をタップ

③「IMAP サーバ」をタップ

④「アカウント名」はGoogleアカウント名、「パスワード」はGoogleアカウントのパスワード、「IMAP サーバ」は「imap.gmail.com」を入力、「保護された接続」は「SSL を使用する」を選択、「ポート」に993が入力されていることを確認、「次へ」をタップ

⑤「SMTP サーバ」はimotenサーバーのドメインまたはIPアドレスを入力、「保護された接続」は「使用しない」を選択、「ポート」は「3.4 ~」で開放したポート番号を入力、「このサーバは認証が必要」にチェック、「アカウント名」「パスワード」は「4.3 imotenの設定」で決めたアカウント名、パスワードを入力、「次へ」をタップ

⑥「同期フォルダの同期間隔」は適当な間隔を選択、「このアカウントにプッシュメールを有効化」にチェック、「次へ」をタップ

⑦「アカウントの名前~」「名前を入力~」は適当な名前を入力、「完了」をタップ

⑧「アカウント一覧」に⑦の「アカウントの名前」が表示されていれば設定完了

5.3 Windows PC

①Thunderbirdを起動、「新しいアカウントを作成する」をクリック

②「メールアカウントを設定する」をクリック

③「あなたのお名前」は適当な名前、「メールアドレス」「パスワード」は転送先Gmailのアカウント名、パスワードを入力、「続ける」をクリック

④「アカウント設定をメールプロバイダから検索しています。」と現れたのち、自動的に送受信サーバが見つかるが、「手動設定」をクリック

⑤「受信サーバ」は「imap.gmail.com」、「送信サーバ」はimotenサーバーのドメインまたはIPアドレス、「ポート」は「3.4 ~」で開放したポート番号を入力、「認証方式」は「通常のパスワード認証」を選択、「再テスト」をクリック

⑥「アカウント設定の検索: サーバを調べています。」と現れたのち、「次のアカウント設定が~見つかりました。」と切り替わるので、「完了」をクリック

⑦「~への接続は暗号化されません。」といった警告が現れるので、「接続する上での危険性を理解しました」にチェック、「完了」をクリック

⑧「パスワードを確認しています...」と現れたのち受信サーバーと接続が確認できたら、ウィザードが閉じるので、「このアカウントの設定を表示する」をクリック

⑨先ほど追加した送信サーバを選択し、「編集」をクリック

⑩「説明」は適当な内容、「ユーザ名」は「4.3 imotenの設定」で決めたアカウント名を入力、「OK」をクリック

⑪これで、送信サーバーへ接続する際のユーザ名が、受信サーバーのユーザ名から送信サーバーのものへと変更できた

⑫メールの作成画面を開き、適当な宛先・件名・本文を入力、「差出人」を⑪のものに変更、「送信」をクリック

⑬送信サーバーのパスワード入力を要求されるので、「4.3 imotenの設定」で決めたパスワードを入力、「OK」を入力

⑭エラーが現れなければ設定完了


--

訂正や追記が必ずあるだろうが、これでとりあえず公開する。

あ~あ、昨年のうちに公開するつもりだったんだけどなぁ・・・(笑)

0 件のコメント:

コメントを投稿