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

ドコモでは公式でキャリアメールを他のメールアドレスに転送するサービスは行われていません。
使用している携帯電話以外でキャリアメールを受けるにはiモード.netのサービスを契約し、メールの設定をする必要があります。
AndroidiOSにはiモード.netにアクセスしてキャリアメールを取ってきてくれるアプリがありましたが、あんまり感覚に合わないのでimotenというアプリを使ってキャリアメールをoutlook.comのアドレスに転送することにしました。

imotenはJavaで書かれているアプリケーションで、WindowsやらLinuxやらで動きます。今回はファイルサーバの中にKVMdebianゲストを構築してそこにimotenを導入しました。

設定は基本的にくずのは探偵事務所を参考に行いました。

2014/09/08

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

なにはともあれiモード.netに申し込みます。Mydocomoにを利用していればドコモショップに行く必要もありません。
iモード.netでは割と最初の方にワンタイムパスワードを利用するか聞かれると思いますが、ワンタイムパスワードを利用するとimotenを動かすのが面倒なので使わない設定にしておきます。

続いてJavaの導入ということで、/etc/apt/sources.listのソースのmainの後ろにcontrib non-freeを追記してJavaとついでにunzipを導入します。

# apt-get update
# apt-get install unzip sun-java6-jdk

Javaのインストール中にライセンスの承諾を問われるので信義にしたがって選択してください。もちろんライセンスを拒否すれば使えませんけど。
ちなみに、Javaは7系が最新ですが、インストールが面倒なので6系を入れました。

そして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 →実行属性を設定
# chmod 755 /usr/local/imoten/bin/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=%outlook.comメールアドレス%
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=30
imodenet.logininterval=60
save.cookie=true

続いてwrapper.confの編集

# whereis java
# nano -w ./conf/wrapper.conf

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

wrapper.app.parameter.2=immf.ServerMain

を追記します。

次いで、imotenをサービス起動できるように設定してimotenを起動します。

# ln -s /usr/local/imoten/bin/imoten /etc/init.d/imoten
# update-rc.d imoten defaults
# /etd/init.d/imoten start

これでだいたい完了。
iモードケータイにログイン通知が届けば設定が成功しているということでしょう。

試しにメールを送ってみるとoutlook.comのアドレスに転送されました。
受信側はiPhoneでExchangeを使ってoutlook.comアドレスの受信設定をしてやればOKです。

送信側はiPhoneで「その他」を使ってYahooのアカウントを登録し、SMTPの設定部分をimoten.iniのsender.smtp.userとsender.smtp.passwdで設定したIDとパスワードにすればOK。
SMTPサーバのアドレスはMyDNSでドメインを取得して登録しました。
今回は自宅のファイルサーバ内のKVMでimotenを動かしているのでルータのポートフォワードをいじって587番ポートだけをKVMゲストのdebianに転送しています。

当初はsmtp.hogeの部分もoutlook.comの別アカウントにしていたのですがなぜかforward.toとsmtp.fromのドメインが同じ状態では転送されたメールの差出人がsmtp.fromのアドレスに書き換わってしまうので仕方なくYahooのアカウントを使用しています。

ポーリングの間隔が30秒なのでだいたい携帯電話で受信と近いタイミングでiPhoneにもメールが届きます。
iPhoneからキャリアメールを送信するときと受信したキャリアメールに返信するときは送信するアカウントに注意しないと違うアドレスで送ってしまうので危うい側面もありますね。