以前、「さくらのVPSにUbuntuをインストールしimotenを使うまで」という記事で、パケット代節約のためにi-modeのメールをGmailに転送できるようにするまでの手順を示しましたが、この度
- imotenを使うための前提であった、i-mode.netのサービスが2015年終了する
- ドコモメールサービス開始により、外部からspmodeメールへのアクセスが容易になった
ことを背景に、
- ドコモメールを使えるようにする
- spmodeのメールをGmailに転送できるようにする
ために実施した作業をまとめてみます。
想定する前提は、
- VPSもしくは自宅LANにLinuxで稼動するマシンを持っている
- 自力でメールサーバを構築できる
ドコモメールをインストールする
まず、ドコモメールを使えるようにしないと話にならないです。 私の手持ちのスマートフォンSO-01E(Xperia AX)はドコモメール対応の機種であるので一安心。 下記リンク先の手順にしたがって、インストールを行いました。
「spモードメール」アプリをアップデートするか、「dメニュー」→「サービス一覧」→「ドコモメール/spモードメール」からダウンロードすること。
ドコモメール導入後は「communicase」ではメールが受信できなくなるのでご注意ください。
ドコモメールのデータに外部からアクセスできるようにする
3.docomo ID利用設定 docomo ID利用設定は、AndroidTMスマートフォンで以下より設定して下さい。 ※iPhoneでドコモメールの利用を開始したお客様は、docomo ID利用設定は「利用する」となるため設定は不要です。
[確認方法] dメニュー → お客様サポート → メール設定 → docomo ID利用設定確認
私のように普段、Wifiでspモードメールを利用している人は、「docomo ID利用設定確認」時に「6029 docomo ID認証時はご利用いただけません」なるエラーが出て困るかもしれませんが、 docomo IDの利用登録時に「docomo ID認証時はご利用いただけません」と表示されてしまう場合の対処法 – ガジェット通信を参考に対応してください。
転送用メールサーバを構築する
メールサーバを構築するのは自宅LANで起動している、Raspberry Piの上とすることにしました。VPS上で起動することも考えたのですが、メールサーバを悪用されるリスクを考慮して、自宅LANとしました。 下記のサイトを参考に、メールサーバを起動します。
PostfixによるSMTPサーバ構築メモ Raspberry Pi に postfix をインストールする | Lab Notebook:
$ sudo apt-get install postfix $ sudo cp /usr/lib/postfix/main.cf /etc/postfix/main.cf $ sudo vi /etc/postfix/main.cf $ /etc/init.d/postfix restart
apt-get した後に、設定を聞かれますが、「設定なし」を選ぶようにしてください。 /etc/postfix/main.cf の内容を差分だけピックアップすると以下のとおり。
myorigin = $mydomain inet_interfaces = loopback-only mydestination = $myhostname, localhost.$mydomain, localhost sendmail_path = /usr/sbin/sendmail newaliases_path = /usr/sbin/newaliases mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /etc/postfix readme_directory = /usr/share/doc/postfix
fetchmailコマンドによるメール転送開始
fetchmailコマンドで、ドコモメールにログインしてメールを取得し、Gmailに転送できるようにします。
ドコモメールを自宅サーバで受信してGmailに転送 - kuniharumaki blog
いまさらハック: DoCoMo iPhone SPモードを20秒間隔でチェックする方法
$ sudo apt-get install fetchmail $ cd $ vi .fetchmailrc $ chmod 600 .fetchmailrc
私の.fetchmailrcの内容は以下のとおりです。 usernameはdocomoID(つまりはメールアドレス)、passwordはdocomoID用のパスワード、isの後に、転送先のGmailアドレスを設定してください。
set logfile "fetchmail.log" set daemon 30 poll imap.spmode.ne.jp proto imap timeout 30 username "xxxxxxxx@docomo.ne.jp" password "docomoidnopassword" smtphost "localhost" is xxxxxxxx@gmail.com idle #imapサーバに対してセッションを維持したまま、新着があれば即受信 no mimedecode keep #メールを削除しない ssl
そして起動します。
$ fetchmail
動作確認
うまく動いているかどうかは、fetchmail.logの内容を確認してください。
fetchmail: 7 通のメッセージ (そのうち 6 通は 既に読み込んでいます) がアカウント xxxxxxxx @docomo.ne.jp , サーバ imap.spmode.ne.jp宛に届いています. fetchmail: xxxxxxxx @docomo.ne.jp @imap.spmode.ne.jp 宛に届いた 7 番目のメッセージ(全部で 7 通)を読み込んでいます (322 バイト (ヘッダ) ) (本文 122 オクテット) サーバからメッセージを削除しませんでした。
うまく動いていれば、ログファイルに上のようなメッセージが出るはずです。
名前 0: localhost:smtp [127.0.0.1/25] への接続を開けません: 接続を拒否されました fetchmail: SMTP による localhost への接続に失敗しました。
上記のようなログが出る場合には、メールサーバの設定ができていないと想定されます。