この記事はtraP 夏のブログリレー 4日目の記事です。
メールアドレスがたくさんあると嬉しいです。メールアドレスを聞かれるたびに別のメールアドレスを答えることにしておけば、メールアドレスが漏れたときにどこから漏れたのかが一発で分かります。
メールアドレスを無限個持つ方法には様々な方法があります。いわゆる捨てアドサービスを使う方法や、gmailのエイリアス機能(hoge@gmail.comのメールアドレスを持っている人がhoge+anystring@gmail.com宛のメールを受け取れる機能)を使う方法があります。
ただ、いくつかのサービスは捨てアドによる登録やgmailによる登録を禁止しています。また、これらのアドレスはパッと見て捨てアドとわかるので人間にこのようなメールアドレスを伝えると信用されていないと思われる恐れがあります。
catch-allって何?
そこで使えるのがcatch-allです。catch-allはあるホスト(@の後の部分)の登録されていないすべてのユーザーに届くメールすべてを受け取る仕組みです。例えば、example.comのドメインにcatch-allを設定すれば、{{任意の文字列}}@example.comのメールを受け取れます。
catch-allを実現する方法はいくつかあります。この記事では、CloudflareのEmail routingを用いてcatch-allを実現する方法を説明します。
CloudflareのEmail Routingを設定しよう!
大前提として、catch-allを実現するためにはドメインを一つ持っている必要があります。ドメインは維持に年間3000円程度かかります。
ちなみにCloudflareのEmail routingはCloudflareで取ったドメインでなくても、Cloudflareをネームサーバーに設定してさえいれば無料で使うことが出来ます。
せっかくなので、具体的な設定方法を説明します。まず最初にお好きなレジストラでドメインを購入し、ネームサーバーをCloudflareのものに設定します。具体的な手順はレジストラによって異なるので割愛します。
登録がおわったら、コントロールパネルからEmail routingを有効にします。
「Email routingを有効にする」ボタンを押すとDNSレコードの追加ボタンが出てきます。お使いのレジストラがメールサーバーを提供している場合、設定が競合するので必要に応じてレコードを削除しましょう。
これでCloudflareのメールサーバーが利用できるようになったので、catch-allを設定します。初めてメールアドレスを登録するときにはメールアドレスの確認メールのリンクを踏む必要があります。画面の指示に従いましょう。
これで設定は完了です。
catch-allのいいところ
迷惑メール対策になる
メールアドレスがどこかから漏れてもそのメールアドレスのみを遮断すれば良いので楽です。知人Aに伝えたメールアドレスが漏れたときには知人Aにだけ「最近迷惑メールが増えたからhoge@example.comにメールアドレスを変えた」と伝えれば良いわけです。
この世のすべてのドメインに対して「admin@なんちゃら」にメールを送ってくるタイプの迷惑メールは防ぐことが出来ませんが、そんなに送られてこない上に使われるユーザー名は限定されているので僕は今のところ困っていません。
メールアドレスを間違えられても届くことがある
@の前の部分ならどのようにメールアドレスを間違えられても届くので、嬉しいです。
気をつけるべきところ
伝えたメールアドレスを失念しがち
「あれ、僕どのメールアドレスを伝えたっけ?」ってなりがちです。人間ならともかく、Webサービスではログインできなくなるのでとても困ります。パスワードはメールアドレスがあれば大抵リセットできますが、パスワードでメールアドレスは大抵復元できません。
大抵は「登録ありがとうございます」的なメールを漁れば登録したメールアドレスが分かるのですが、間違えてメールを削除してしまったりメールを一切送ってこないサービスがあったりすると地獄を見ます。
伝えたメールアドレスは相手と共にメモっておきましょう。
slackにバラバラのメールアドレスを登録すると別端末からのログインがめちゃくちゃ面倒くさい
上記の問題の派生形です。slackは別の端末からワークスペースに参加しようとすると同じメールアドレスで参加しているワークスペースを列挙してくれるのですが、バラバラなメールアドレスを使うとそれが出来ません。ワークスペースひとつひとつについてメールアドレスを入力して確認メールを受け取って認証コードを打ち込む必要があります。正気の沙汰じゃないです。
すべて同じメールアドレスで登録するか、「信頼できるところ用」と「そうでないところ用」のように2種類のメールアドレスのみを使うにとどめるのが賢明です。
このままではメールが送れない
Email routingは受信専用のサービスなので、メールの送信には別の手法を用いる必要があります。しかし、メールの送信に別のメールサーバーを設定するとSPFレコードなどが衝突して面倒くさいことになりがちです。
明日の担当は@masky5859さんです。お楽しみに!