Gmail 送信メールアドレスのカスタマイズ

暫く前に Gmail のアカウント招待をもらって以来、プライベートなメールのアーカイブは Gmail に頼り切っている。プライベートな複数のメールアドレスのそれぞれを Gmail アドレス(以降、xxx@gmail.com とする)に転送して、Gmail の Web インタフェースで全てのアドレス宛のメールを読むようにしているのだ。

普通ならばメールアドレス毎にメールボックスを分けたくなるところだが、Gmail の検索機能のおかげで一つにまとめてしまっても特に問題は感じない。あのメールはどのメールボックス(あるいはフォルダ)にあるんだっけ?、と悩むよりも早くとにかく検索一発で目的のメールを見つけられるという心理的な安心感は非常に大きい。この辺は Gmail を使っている人ならば納得してくれるだろう。

(参考: GMailのちょっと違う使い方(利用法)を教えてください。.. - 人力検索はてな

ただし、メールを送信する時はローカルなメールソフトを使っている。Gmail はメールを読む分にはすばらしいインタフェースなのだけれど、メールを書くぶんには(主に私にとって)いくつか問題があったのだ。

  1. 送信メールアドレス (From:) が常に xxx@gmail.com になってしまう
  2. そもそもブラウザ上でメールを書く気にならない

1 はほとんどの Web Mail に共通の問題だが、これは自分にとっては致命的。確かに Gmail は便利だけれど、だからといってそのために自分のメールアドレスを変更する気にはなれない。せっかく独自ドメインのプライベートメールアドレスを複数作って用途別に使い分けているのに、Gmailを使ったら一つのメールアドレスに纏めなければならず*1、受け入れられない。

しかし Gmail は漸進的に機能を追加していっており、ちょいと前の機能追加で「送信アドレスをカスタマイズする機能」が加わった。このおかげでメールを書く方も Gmail の Webインタフェースを使えるようになった。

でもいまだに送信はローカルなメールソフトを使っている。外出時などに一時的に Web インタフェースを使ってメールを書くことはあるけれど、普段の環境では手慣れたローカルソフトの便利さから退行できないのだ。


ここで話の流れを大幅に省略するけれど、以下はローカルメールソフトから GmailSMTP Server を使ったときの動作メモ。

Gmail SMTP と送信メールアドレスの関係

Gmail には一般のメールソフトと同様に送信フォルダがある。当然 Gmail の Web 経由で送ったメールソフトは送信フォルダに表示されるが、GmailSMTP Server 経由で送ったメールも送信フォルダに表示される。

これを使えばローカルソフトで書いたメールも Gmail 上で送信フォルダに表示されるため、あとから自分の送信メールを検索するときに便利である。

ところが以前の Gmail では、SMTP Server を経由した送信メールは送信アドレス (From:) が xxx@gmail.com に強制的に上書きされていた。このため Gmail 以外のアドレスでメールを送りたい人は Gmail の送信フォルダ機能を使えず、なんとなくお預けを食らったような寂しい思いをしていたのだ。しかしこの仕様も最近変更されたようで現時点ではこういう動作になっている。

  • Gmail のアカウントにあるアドレス (From:) についてはそのまま通す
  • アカウントに無いメールはデフォルトのアカウントで上書きされる(デフォルトは xxx@gmail.com 以外に設定できる)

どちらのケースでも「Sender: xxx@gmail.com」が付与されるため、送信者のユニークな Gmail アカウントが受信者にわかってしまう。けれどそれが許容できるのであれば、この SMTP はネットワークロケーションを選ばずに使えるので、特にモバイラー等にとっては理想的な SMTP サービスになる。

送信フォルダに入るタイミングは?

Gmail の受信フォルダの実体はただの「Label: Inbox」だということは Gmail を観察していればすぐにわかると思う。受信フォルダは、全メールの中からinbox ラベルが付与されたメールを表示しているにすぎない *2

送信フォルダも同様で、実体はただの Label: Sent なのだ。送信フォルダに表示されているメールは単に Sent ラベルが付いたメールである。だから Sentラベルを付与できればそれは送信フォルダに表示される*3

その Sent ラベルが付くタイミングは、ちゃんと確認したわけではないが次の通り。

  • Web インタフェースでメールを送った
  • Gmail SMTP Server 経由でメールを送った
  • Gmail に届いたメールの送信者 (From:) メールアドレスが Gmail のアカウントの中にある

特に最後のやつが重要で、この条件をうまく使えば自分が過去に送ったメールを Gmail の送信フォルダにつっこむことができる。

具体的には、自分がふだん name@sample.com というアドレスを使っているのだとしたら Gmail アカウントの中にそのアドレスを設定した後に、過去のメールをリメーラーで xxx@gmail.com に転送してやればいいのだ。例えば unix だったら sendmail コマンドを使って、


% cat ~/Mail/outbox/mh-style-mail | sendmail xxx@gmail.com
というようにしてやればよい。

自分が過去の使っていたメールアドレス全てについて上記の操作をしてやれば、過去の自分の送信メール全てを Gmail に保管(バックアップ)して検索対象にすることができる。

ちなみに、一度 Sent ラベルが付いてしまえば Gmail アカウントから name@sample.com を削除したとしてもラベルは剥がれないのでアカウント数が無意味に増えることを心配する必要はない。

*1:実は Gmailエイリアス機能を使って似たようなことはできるんだけれどね

*2:内部では高速化のために特別扱いしている可能性は高いけれど

*3:実際には手動で付けることは不可能。これできるようにして欲しい。