« 久しぶりにすき家に行ってきた | メイン | 平成19年度 AC 認定者のブログ »
2006年10月28日
携帯にメールを転送
僕が持っている携帯電話のキャリアは、最大手の DoCoMo です。スパムメールが届くのが嫌で、携帯電話からのメールしか届かないように設定してあります。
この設定には、少し盲点があります。携帯電話を対象とした ML を受け取れなくなるんですよね。
ML の設定方法には色々ありますが、大きく分けると「送信元を送信者にする」と「送信元を ML のアドレスにする」の2つに分けられるんじゃないかと。指定受信の設定を行っている場合、前者のメールが受け取ることができなくなります。
なぜ?
えっと。リレーサーバを挟んでしまうので、キャリア側が送信元偽装と判断してしまうのですよね。ん?分かりにくいか…。要は From を example@docomo.ne.jp にしておきながら smtp.example.com から送信されるのを防いでいるというわけ(指定受信設定の場合のみ)。
ということは、指定受信の設定で From ではなく、送信元 SMTP サーバを設定できればいいんだけど、普通な携帯利用者にはわかりっこない。ので、キャリア側がそんな機能を準備してくれるのは、絶望的なわけです。
ということで、オレオレゲートウェイを準備します。
オレオレゲートウェイの役割
1. mb@example.com でメールを受け取る
2. From を mb@example.com に書き換える(指定受信対策)
3. 携帯電話 mobile@example.jp に送信
ML の受信用に、外部にメールアドレスを準備するだけですね…。そして From が example@docomo.ne.jp などの場合に備えて、書き換えると。そうすれば、指定受信設定で mb@example.com を許可していれば、携帯で受信できる。
From を書き換えて送信するプログラム (mb_forward.pl)
CPAN モジュールを使えばもっと美しく書けるような気がしますが、標準インストールな環境で動くように心がけているので、一部は力技で。タイトルの抽出なんか、感動物ですよ。
外部プログラムの起動方法として procmail を利用します。別に .forward でも良いと思いますけど。
$ vi .procmail :0 : * for <mb@example\.com> | /home/user/mb_forward.pl
レシピに To: mb@example.com などと書くのは時代遅れですね…。とか言ってみる。今回のように for <mb@example.com> などと書けば、送信者が BCC で送信しても、きちんと振り分けられます。
僕が .procmail を利用するのは、エイリアス設定で mb に相当する部分が、何であっても受信するようにしているからです。メールを受信して云々をいうプログラムを結構書くので、レシピは沢山あります。
example@docomo.ne.jp は、説明用のメールアドレスとして利用しました。もしかしたら実際に利用者がいる可能性もありますので、悪戯とかの無いようによろしく御願いいたします。
それでは、良き携帯 ML ライフをお過ごしください。
2006年10月28日 17:24 | Programming
トラックバック
コメント
つ
:0 f
| formail -i "From: mb@example.com"
:0 :
! mobile@example.jp
投稿者 IKeJI : 2006年10月28日 21:22
>> IKeJI さん
もっと調べるべきだった…。
送信元を本文に加えることもできるのかな?
投稿者 ceekz : 2006年10月28日 21:39
携帯でML使いまくりのオレが来ましたよ.それをやると,
・自分からはそのアドレス(ここではmb@example.com)で返信できない
・返信すると,mobile@example.jp が分かってしまう
という罠がある気がするのだが,どうだろうか.
なので,DoCoMoというキャリアを捨てるのが正解だと
思うわけだが…….
あるいは携帯からgmailを読むとかでもおk.
gmailの携帯モードはかなりコンパクトだし.
投稿者 takot : 2006年10月31日 15:59
>> takot さん
今回の場合ですと mobile@example.jp でやり取りしたいんだけど、出来ないので、便宜的に受信のみ mb@example.com を使うだけなので、特に問題ないです。
関係ないけど、そろそろ 504iS から FOMA に代えたいな…。流行の GPS 付のを探すかな。
投稿者 ceekz : 2006年10月31日 17:14