iPhoneでiモードメールを送受信する その2

以前書いたiPhoneでiモードメールを送受信するRaspberry Piでimotenを動かすをまとめ直したものです。
結構な長さになってます。

2014/09/08

iモード.netのログイン方法変更により、この記事の方法ではメールを送受信できなくなりました。
iモードメールからドコモメールに移行した - えぢた 2.2 @k_zoarにて変更を行っています。

まず、復習。
ドコモでは公式サービスでキャリアメールを転送するサービスを行っていないので契約しているSIMの入っていない端末でiモードメールを送受信するためにはなんらかのサービスを利用する必要があります。
ここではimotenというサービスをRaspberry Pi上で動かしてiPhoneでキャリアメールを送受信するための設定を記録します。


今回の設定では準備としてYahoo!メールのアドレスとGmailのメールアドレスが必要になります。もちろんRaspberry Piで動かすのでRaspberry Piも必要です。自宅で動作させるのでルータにはグローバルIPアドレスが振られている必要があると思います。
imotenはドコモのiモード.netのサービスを利用するのでこのサービスも契約する必要があります。My docomoから申し込みができるのでサービスに申し込んでおきます。
細かいことを言えばルータのアドレスが固定でない場合にはDynamicDNSを利用してドメインでアクセスできるようにした方が楽だと思います。
現在MyDNSを利用していて、IPアドレスの更新も同じRaspberry Piで行っています。
Gmailを使ってプッシュ受信を行うのでiPhoneにはGmaiアプリを入れておきます。

javaのインストール

imotenはjavaで動作するのでRaspberry Piにjavaをインストールする必要があります。
純正javaがいいらしいのですが、今回は手間を省いてopenjdk-7-jdkを使いました。

# apt-get update
# apt-get install openjdk-7-jdk
# whereis java

apt-getで楽にインストールできると思います。
whereas javaの結果出てきたjavaのパスは後で使うのでどこかにコピペしておきます。

imotenのインストールと設定 格納ディレクトリを作成して設定を行います。

# mkdir -p /usr/local/imoten →作業用ディレクトリ作成
# cd /usr/local/imoten
# wget http://imoten.googlecode.com/files/imoten-X.X.XX.zip →imotenのダウンロード
# unzip -d /usr/local/imoten imoten-X.X.XX.zip →imotenの解凍
# chmod 755 /usr/local/imoten/bin/imoten →実行属性を設定

普通はwrapperにも実行属性を付与しますが、Raspberry PiなどのARMデバイス用wrapperはないので放置します。
続いて設定ファイルの作成。デフォルトの設定ファイルはファイル名を変えて待避しておきます。

# mv ./imoten.ini ./imoten.ini.def
# nano -w ./imoten.ini

設定ファイルは下記の通り

docomo.id=%docomo ID%
docomo.passwd=%docomo Password%

smtp.server=smtp.mail.yahoo.co.jp
smtp.port=587
smtp.connecttimeout=10
smtp.timeout=30
smtp.tls=true
smtp.ssl=true smtp.from=%Yahooメールアドレス%
smtp.auth.user=%Yahoo ID%
smtp.auth.passwd%Yahoo Password%

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=587
sender.smtp.user=%SMTP ID%
sender.smtp.passwd=%SMTP Password%
sender.charconvfile=../conv/unicode2docomo.csv,../conv/genSb2docomo.csv
sender.convertsoftbanksjis=true
sender.stripiphonequote=true sender.docomostylesubject=true

imodenet.checkinterval=15
imodenet.logininterval=60
save.cookie=true

次にwrapper.confの編集です。

# nano -w ./conf/wrapper.conf

wrapper.java.commandにはwhereis javaで出てきたJavaコマンドの場所をフルパスで記入して、次の行に

wrapper.app.parameter.2=immf.ServerMain

を追記します。

stunnelのインストールと設定

Gmalからimotenにメールを送る際に必要なのでstunnel4をインストールして設定します。

# apt-get install stunnel4
# cp /usr/share/doc/stunnel4/examples/stunnel.conf-sample /etc/stunnel/stunnel.conf
# nano -w /etc/stunnel/stunnel.conf

ssmtpの項目のポート番号をimotenに合せて変更します

[ssmtp]
accept = 465
connect = 587

続いて電子証明書を作成します。

# cd /etc/stunnel
# openssl req -new -x509 -nodes -days 3650 -out mail.pem -keyout mail.pem

下記のような質問が出てくるので適当に答えます。

Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Saitama
Locality Name (eg, city) [Newbury]:Kawagoe
Organization Name (eg, company) [My Company Ltd]:%サイト名%
Organizational Unit Name (eg, section) : →無記入でEnter
Common Name (eg, your name or your server's hostname) :%ホスト名%
Email Address []:%メールアドレス%

証明書の作成が終わったら/etc/default/stunnel4を編集してstunnel4を起動させます。

# nano -w /etc/default/stunnel4

変更部分
ENABLED=1

# /etc/init.d/stunnel4 start

ルータのポートマッピングを変更して465ポートをRaspberry piに飛ばすように設定すれば完了です。

Gmailの設定

GmailでデフォルトのSMTPをimoten宛てに設定しておくと、受信したメールをそのまま返信してもiモードメールアドレスで返信した形にしてくれるのでGmalの設定をします。


Gmailの設定画面でアカウントを選び、メールアドレスを追加します。

別ウィンドウが開き、メールアドレス欄にはYahoo!メールのアドレスを入力します。

次の画面でSMTPサーバー経由で送信しますを選択するとSMTPサーバーの設定内容を入力するテキストボックスが表示されるので、設定します。

SMTPサーバー DynamicDNSドメイン
ユーザ名 imoten.iniで%SMTP ID%に設定したID
パスワード imoten.iniで%SMTP Password%に設定したパスワード

SSLを使用したセキュリティで保護された接続にチェックを入れてからアカウントを追加します。

Yahoo!メール宛てに認証のメールが飛んでくるので認証してあげてください。


メールアドレスの追加が終わったらデフォルトのメールアドレスを追加した方のメールアドレスにして、デフォルトの返信モードを常にデフォルトのアドレスから返信するにチェックを入れておきます。

さらにiPhoneGmailアプリでは普通にGmailアカウントをセットアップすればOKです。

imotenを自動起動する

最後にimotenを自動起動するように設定します。
今回は/root/imoten.shを作成してRaspberry Piの起動時に実行させる方法です。

# touch /root/imoten.sh
# chmod +x /root/imoten.sh
# nano -w /root/imoten.sh

内容は下記のような感じで。

#!/bin/sh
cd /usr/local/imoten/bin
java -Dfile.encoding=UTF-8 -Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP,Windows-31J/Shift_JIS -cp ../lib/skype.jar -jar ../imoten.jar

スクリプトを書いたら/etc/rc.localにスクリプトファイルを実行するように記述を追加します。

# nano -w /etc/rc.local

書き込むのはexit 0の直前あたりがいいかなと思います。

/root/imoten.sh &

おしまい

Raspberry Piを再起動すればimotenが起動してiモードメールをiPhoneで送受信できるようになります。
しかし面倒ですよね、もっと簡単になんとかできるようにしてくれると嬉しいんですが、なんとかなりませんか各キャリアさん。