2010年11月12日

Gmailから携帯メールを使う(自前サーバ&iPhone回線持ち限定)

事の発端は、ひとりぶろぐでおなじみmoyashiさんのtwitterでのこんな呟き。
i.softbank.jp宛メールをfetchmailでGmailにリアルタイム転送 "i.softbank.jpとGmailの統合" http://bit.ly/aDNuRa
(http://twitter.com/hitoriblog/status/28971894276)

iPhone発売当時、SMS/MMSに対応しないiPhoneへの苦肉の策として導入されたi.softbank.jpというアドレス。私がiPhoneを手にした時はちょうどMMS対応するかしないかくらいのタイミングだったので、私自身はほとんど使っていないし、周りにも使っている人がいない(みんな覚えてもない?)という可哀想な子なのですが、このアドレスには実は他にはないすばらしい特徴があります。

・キャリア回線不要で使えるただのIMAPメール
・携帯各社の中では携帯メールとして認識されている


つまり、回線にも機材(端末)にも全く縛られないメールでありながら、「携帯メールのみ受け取り」と設定している相手にちゃんと届くメールなのです。これを活用しない手はない、とi.softbank.jpGmailを統合してしまったのが最初の呟きで紹介されていたblog記事でした。

これは私もやってみたい!と思い、記事の通りに設定を始めた(記事の内容が完璧なのでここでは省略…手抜きですいません)のですが、一つ困ったことが。紹介されていた手順では自分のサーバ内にメール送信をしてくれる人(sendmailとかですね)がいることが前提になっているのですが、私はその環境を持っていません。入れて入らないことはないのですが、出来れば送信サーバはGmailとか既存のサービスを使いたい…と思って苦悩していたら、SHIMI.INFOでおなじみ清水さんが「このスクリプト使ってごら〜ん」と助け船を出してくださいました。

str2imap.rb
#!/usr/bin/ruby

require 'net/imap'
IMAP_SERV = 'imap.gmail.com'
IMAP_PORT = 993
IMAP_SSL = true
folder = ARGV[0] || 'INBOX'
user = 'Gmailのユーザ名'
pass = 'Gmailのパスワード'
begin
  imap = Net::IMAP.new(IMAP_SERV, IMAP_PORT, IMAP_SSL)
  imap.login(user, pass)
  begin
    imap.examine(folder)
  rescue
    if folder =~ /[^\w]/ then
      folder = Net::IMAP.encode_utf7(folder)
    end
    imap.create(folder)
  end
  rawmail = ''
  STDIN.each { |l|
    rawmail << l
  }
  if rawmail.gsub(/[\n|\r]+/, '').length == 0 then raise 'NO data input.' end
  imap.append(folder, rawmail, nil, Time.now)
  imap.logout
rescue => err
  puts err.to_s
  imap.logout
  exit 1;
end
exit 0;

このスクリプトを/home/hoge(場所はどこでもいいですよ)に配置したら、.fetchmailrcを以下の通り記述します。

.fetchmailrc
set postmaster Gmailのユーザ名@gmail.com
set nobouncemail

poll imap.softbank.jp
proto imap
timeout 30
username i.softbankのユーザ名
password i.softbankのパスワード
idle
no mimedecode
keep
mda "/home/hoge/str2imap.rb"

あとはfetchmailを起動するだけ。
動きっぱなしになるので完全な裏起動にしましょう。
nohup fetchmail > /dev/null 2>&1 &

これでi.softbank.jpに送られたメールは即時にGmailに転送されます。

これならSIMなしの端末からでもメール送れるし、そもそもどの端末、どの回線を使っているかを全く相手に意識させずにこちらが自由に振る舞える。これはある意味真のMNPかも。全キャリア共通でIMAPなメールサーバ作ってくれないかなー。

moyashiさん、清水さん、いのたん♪さん、どうもありがとうございました!

管理人の部屋: i.softbank.jpとGmailの統合
http://gtbleds18.blogspot.com/2010/04/isoftbankjpgmail.html

Togetter - 「i.softbank.jpをGmailに統合するための試行錯誤」
http://togetter.com/li/65323
posted by 月水和尚 (とも) at 15:36 | Comment(0) | TrackBack(0) | iPhone/iPod Touch