feature image

2023年8月24日 | ブログ記事

catch-allのススメ

この記事は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さんです。お楽しみに!

ramdos icon
この記事を書いた人
ramdos

23B。CTFをしている場合とそうでない場合があります。

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2021年8月12日
CPCTFを支えたWebshell
mazrean icon mazrean
2022年9月26日
競プロしかシラン人間が web アプリ QK Judge を作った話
tqk icon tqk
2022年9月16日
5日でゲームを作った #tararira
Komichi icon Komichi
2023年9月27日
夏のブログリレーは終わらない【駄文】
Komichi icon Komichi
2023年9月13日
ブログリレーを支えるリマインダー
H1rono_K icon H1rono_K
2023年8月21日
名取さなになりたくてOBSと連携する配信画面を作った
d_etteiu8383 icon d_etteiu8383
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記