ヤクとアヒル

日常の問題を解決したときにつけるログ

MVNOに乗り換えてキャリアメールが使えなくなった時のメール運用のベストプラクティス

f:id:motoso:20151012200822p:plain MVNOに乗り換えたとき,キャリアメールが使えなくなるデメリットを克服するためにメールの運用を思考錯誤しました. HopとInboxというメーラを使ったメールの運用方法を約1年間試した結果,割とうまく使えているので共有します.

対象読者

  • iPhoneユーザでMVNOを使うことを検討していて,キャリアメールが使えなくて困っている人
  • HopとInbox(やMailbox)などのメーラの使い分けに悩んでいる人

背景

IIJ mioなどのMVNOサービスを使ってスマホを運用しようとするときの問題の一つが,キャリアメール*1が使えなくなることです. LINE,TwitterSkypeFacebookなどの連絡手段が一般化してきましたが,まだまだ個人間でのやり取りにキャリアメールを使うシーンがたくさんあります. キャリアメールを使うメリットはユーザ目線で見ると以下の点があります.

  1. キャリアのアドレスを前提としたWebサービスを使うことができる*2
  2. iMessageでチャットのように表示できるので会話の文脈が失われにくい

1番目については,MVNOを使う時点でキャリアメールのアドレスを取得することはできないのでどうしようもありません. 本エントリでは,2番目についてHopというアプリケーションとGmailを使って解決する方法をご紹介します.

できるようになること

キャリアメールを使わずに,以下の目的を達成する.

  1. キャリアメールから来たメールはiMessageやLINEのような見た目で表示する.
  2. それ以外から来たメールは,Gmail(InboxやMailboxなどのクライアントをつかって)で管理する.

ただし,iPhoneユーザであることと,Gmail(あるいはそれに相当する機能を持つメールサービス)を使うことが前提とします.

目的1の実現手順

Hopをインストールする

HopというアプリケーションをApp Storeでインストールすればキャリアメールのような見た目を実現することができます.Hopについては過去に書いた記事を参考にしてください.

motosonomoto.hatenablog.com

目的2の実現手順:Gmailの機能を活用する

事前に必要なもの:Gmailのアドレスを2つ用意する

  • 公開用アドレス(以下,このアドレスをpublic-address@gmail.comと呼ぶ)
    • あなたが友達に教えたり,Webサービスに登録するための外部公開用アドレス
    • キャリアメール(友達のスマホや携帯)から届いたメールをHopで閲覧するためのアドレス
  • 閲覧用アドレス(以下,このアドレスをfilter@gmail.comと呼ぶ)
    • PCやメールクライアントで閲覧するためのアドレス
なぜメールアドレスが2つも必要なのか?

Hopを使えば目的は達成できたように思えます.しかし,そうではありません.ここまでの設定では,全てのメールがHopに来てしまいます.Amazonからのメールも,メールマガジンのメールも.

「Hopで読みづらければ,Gmailのアプリで読めばいい」

もちろんそうです.しかし,メールボックスには友達からのメールとAmazonなどからのメールが混じっているのです.
Hopで友達のメールを読みたい時,たくさん来るメールから,友達からのメールだけを探さなければなりません.これは面倒臭すぎます.

問題は,Hopで見るべき友達からのメールと,他のクライアントで見るべきメールがごちゃまぜになってしまうことです.
以降では,メールアドレスを2つ取得することでこの問題を解決します.また,メールアドレスを2つ使うことで起こる,送信者アドレスが変わってしまう問題を,Gmail送信者情報の差し替え機能を使うことで解決します.

詳しい人向けの情報

本記事では簡単のためGmailのアドレスを2つ使うことにしていますが,公開用アドレスはプロバイダが認証済みSMTPをサポートしていれば,Gmailでなくてもよいです. その場合はGoogleのヘルプ返信時や転送時に「From」アドレスを変更するの「Gmail ユーザーか Google Apps ユーザーであり、外部アドレスから送信します。」を参考に設定してください.

前提知識:Gmailはメールの送信者を別アドレスに変更できる*3

詳しくはGmailのヘルプを参照ください.

返信時や転送時に「From」アドレスを変更する - Gmail ヘルプ

構成図

f:id:motoso:20151012200822p:plain

公開用アドレスに全てのメールが届きます. そのうちWebサービスなどからのメールは全て閲覧用アドレスに転送され.公開用アドレスにおいてはアーカイブ(既読扱い)処理をします.つまり,各アドレスに存在するメールの状態は次のようになります.

公開用アドレス 閲覧用アドレス
友達以外のメール 既読 未読
友達からのメール 未読 存在しない
(使いたいメーラ) Hop Inbox

また.各アドレスの役割は次のようになります.

公開用アドレスの役割
  • 友達からのメールのみが未読で存在します.
    • それ以外のメール既読状態で存在します.
  • このアドレスに来たメールをHopで読みます.
閲覧用アドレスの役割
  • Webサービスなどからのメールのみが存在します.
    • 閲覧用アドレスに友達からのメールが来ることはありません.
  • このアドレスを通常のメーラ(Gmail, Inbox, Mailboxなど)で読みます.

構成図のようになるようにGmailを設定する

はじめに行うことは,次の設定です.

  • 公開用アドレスに友達以外から(すなわちキャリアメール以外から)届いたメールを,閲覧用アドレスに転送する
  • 転送済メールを既読にしてアーカイブする

これをすることによって,公開用アドレスには友達からのメールのみが未開封の状態で残ることになります.この状態になれば,Hopで見ることによって友達からメールのみをiMessageのようにチャット形式で見ることが出来ます. では次の手順にしたがってやってみましょう.

公開用アドレスにキャリアメール以外から届いたメールを閲覧用アドレスに転送し,転送済メールを既読にしてアーカイブする

公開用アドレスのGmailにログインして次のようにフィルタを設定します. f:id:motoso:20151012184737p:plain

コピペ用:from:-{softbank.ne.jp,ezweb.ne.jp,docomo.ne.jp})

この状態で閲覧用アドレスにはInbox等で見るべきメールのみがある状態になります.

しかし,一つ問題があります.Inboxなどのメーラで閲覧用アドレスのメールを見ていて返信が必要にったときにそのまま返信してしまうと,送信者のアドレスがfilter@gmail.comになってしまいます.相手から見たら,知らないアドレスからメールが来たことになってしまいます.相手が知っているのはpublic-address@gmail.comというアドレスです.このアドレスで送らなければいけません.簡単な解決策として,いちいち公開用アドレスにログインしなおして送るということが思いつきますが,明らかに非常にめんどくさい.

Gmailの機能を使えばもっとスマートに解決できます.

閲覧アドレスから送信するメールの送信者を公開用アドレスのものに変更する

閲覧用アドレスのGmailにログインして次のように設定します. f:id:motoso:20151012184853p:plain これで,閲覧用アドレスから送信したメールの送信者の情報は,公開用アドレスの送信者のものになります.

アプリの設定を行う

以上の設定が終われば,後はメーラ上で使うアカウントを個別に設定すればよいだけです.

  • Hopにおいて,公開用アドレスを使うように設定します
  • InboxやMailboxにおいて,閲覧用アドレスを使うように設定します

お疲れ様でした🎉

蛇足:図で示した構成は大事です

紹介した設定では,公開用アドレスから閲覧用アドレスに友達のアドレス以外からのメールを転送していました. でも,友達のアドレスからのメールのみを転送して,公開用アドレスをInboxが,閲覧用アドレスをHopが読んでも同じことが実現できると思いますよね.

実はそうすると,閲覧用アドレスからのメール送信時に,送信者の情報が公開用アドレスのものに差し替わりません. どうも,InboxやMailboxはGmailのこの機能をサポートしていますが,Hopはサポートしていないようです(Gmailで設定しているのにクライアントが影響する原因はわからないけど,送信時に何か特別な処理をしているのかもしれない).

*1:shibuyarin@docomo.ne.jpみたいな,キャリアのから付与されるメールアドレスのこと.

*2:キャリアのアドレスは契約者に一つ割り当てられるため,メールアドレスの偽造がしにくい性質がある.このため本人確認をなるべく厳しくやりたいサービスでは非キャリアメールでは登録できないものがある.

*3:送信者名を変更できますが,送信者の本当の送信アドレスはメールのヘッダ(例えばReturn-Path)に埋め込まれます.

スポンサーリンク