テスト用のメールアドレストラブルを避けるためには

スタッフブログ

こんにちは、最近は既存のコードを読み解くのが難しくも楽しく感じている森山です。
今回取り扱っていくのはテスト用に使用するメールアドレスについてです。プログラムの中にはメールに関する処理が必要な物もあります。私自身はまだその機能を実装したことはないのですが、テストデータを作成するときに仮のメールアドレスを登録することがありました。その時にテスト用として使用することを推奨しているメールアドレスがあったことを思い出して、調べ直したのでそれについて語っていきます。

テスト用メールアドレスとは

テスト用メールアドレスとは、メール送信先として用意する仮のメールアドレスや、お客様が登録するメールアドレスの箇所に仮で設定するメールアドレスなどのことを言います。他にも探せばテスト用メールアドレスの意味はあるかもしれませんが、今回はこの2つで気を付ける箇所について説明していきます。

テスト用のメールアドレストラブル

メールアドレスのテストをしている時に実際のメールアドレスではなく、仮で設定する用として〇〇〇〇@aaa.comのような実際には使ってなさそうなアドレスを入力していないでしょうか? テスト用メールアドレスとして適当に設定してしまうと、実際にそのメールアドレスが使われていた場合何かのミスでメールが届いてしまうと情報漏洩に繋がることもあります。

また、現時点で使用されていなくても今後必ず取得されないとは限らない為、使用は控えたほうが良いと思います。

使用していいテスト用メールアドレス

では、テスト用として使ってもいいメールアドレスは何があるのでしょうか。RFC6761には予約済みのトップレベルドメイン(以下TLD)とセカンドレベルドメイン(以下SLD)という物があります。これらのドメインはテスト用として使用しても大丈夫なことが保証されているのでこれを使用すると良いのではないかと思います。

RFC6761のサイトによると予約済みのTLDは

.test
.example
.invalid
.localhost

で、予約済みのSLDは

example.com
example.net
example.org

があります。

予約済みTLD

.test

これはテスト時に使用するのに推奨されているTLDで、ドキュメントや例で使用する事で分かりやすくすることができると思います。実装中のテスト対象になるメールアドレスなどをこれにするといいのではないでしょうか。

.example

これはドキュメントでの使用や例としての使用を推奨しているTLDで、主に例として使用する場合はこれを使っておけば間違いはないと思います。exampleは後述するSLDの方にも存在するのですが、使用頻度で言うとSLDの方が高いかもしれません。

.invalid

これは無効な例として使用することを推奨しているTLDで、名前からして一目で無効であるというのが伝わるため、無効なメールアドレス用として使うとわかりやすいと思います。

.localhost

これはメール用ではなくウェブなどのTLDとして使用する為に予約されているもので、ループバックIPアドレスを示すものになります。今回はメールアドレスに関してですので気にしなくて大丈夫です。

使用方法

これらTLDはメールアドレスの一番後ろに付ける形で使用します。

例
〇〇〇〇@〇〇〇〇.test
〇〇〇〇@〇〇〇〇.example
〇〇〇〇@〇〇〇〇.invalid

予約済みSLD

example.

TLDには複数種類の予約がありましたが、SLDにはexampleの1つしかありません。用途としてはTLDのexampleと同じで、ドキュメントでの使用や例としての使用を推奨しています。個人的にテスト用メールアドレスと聞いて一番しっくりくるのがこのexample.です。

使用方法

SLDはTLDの1つ手前で使用します。

例
〇〇〇〇@example.com
〇〇〇〇@example.net
〇〇〇〇@example.org

日本のテスト用ドメイン

このほかにも各国のドメインで使用できるテスト用ドメインもあります。日本ではこれらが使用できます。

example.jp
example.co.jp
example.ne.jp
ドメイン名例.jp
〇〇〇〇@〇〇〇〇.テスト

また、jp、co.jp、ne.jpはexampleの後に0~9までの1桁の数字をつけた文字列も利用することができます。

例
example1.jp
example5.co.jp
example9.ne.jp

まとめ

適当なドメインは使わないほうが良い。
基本的にexample.comが分かりやすくていい。
以上です。ありがとうございました。