※ 私が株式会社愛宕 Advent Calendar用に書く記事は主に社内向けに共有しておきたいけど勉強会をするまでもないちょっとしたTipsにしたいと思います。
今日の話題は、メールアドレスの無効化についてです。
なぜ無効なメールアドレスが必要なのか
何らかのシステムでメールアドレスを登録しているものとします。
メールアドレスにはユニーク制約がついていて同じメールアドレスは登録できないのが一般的です。
このようなシステムで、一度あるメールアドレス(hoge@example.com
)を登録したユーザーがアカウントを削除したとします。
この時データベースから完全に削除できるなら問題ないですが、要件によってはフラグを立てたり、削除年月日を更新するだけで実際の削除は後回しにする場合もよくあります。
このような場合、以前のユーザーがもう一度アカウント登録して同じメールアドレス(hoge@example.com
)を登録しようとするとユニーク制約エラーになって登録できません。
解決
この問題を解決するのに簡単な方法はメールアドレスの末尾に.invalid
を付ける方法です。
.invalid
はRFC2606で予約されており、一目で無効であることが判別できて絶対に繋がらないことになっているドメインです。
これをメールアドレスに付けると、先ほどの例に従うとhoge@example.com.invalid
となってメールアドレスの形式を守りながら、実際には送信できないメールアドレスとなり、さらに元のメールアドレスとは違う値なのでユニーク制約の問題も回避できます。
ちなみに、今回例示として使ったexample.com
もRFC2606で予約されているものです。