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!メール宛てに認証のメールが飛んでくるので認証してあげてください。
メールアドレスの追加が終わったらデフォルトのメールアドレスを追加した方のメールアドレスにして、デフォルトの返信モードを常にデフォルトのアドレスから返信するにチェックを入れておきます。
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 &