Cloudflare Email Routing で転送用メールアドレスを設定する

Cloudflare には Email Routing というメール転送サービスがあります。
普段からサービス毎にメールアドレスを設定している身としては、メールサーバを自前で用意しなくても良くなりそうなのが魅力的でしたので余っていたドメインで試しに設定してみました。

ドメインなんて余っているものなのかという疑問を抱いた方もいらっしゃるかもしれませんが、まれに良くありますのでそこはお気になさらず……。

そもそも何故転送用メールアドレスが必要なのか

フィッシングメールの被害が後を絶ちません。
個人同士のコミュニケーションはメールよりも SNS やチャットなどのツールにシフトしていますが、まだまだメールというツールは一般的に使われています。

ところでフィッシングメールは何故流行っているのか、つまり何故騙されてしまうのでしょうか。
これについては一つの解がありまして、重要なものもそうでないものも同じメールアドレスで受けているのが良くないそうです。
つまりメールアドレスを用途で分けると良さそうですよね。
更にサービス毎に全部分けてしまえば、例えばとある通販サイトに登録したメールアドレスに「銀行からの重要なお知らせ!」というメールが来ても一発で偽物だと判断できるわけです。

サービス毎にメールアドレスを分ける事で次のような利点もあります。
特定のメールアドレス宛に迷惑メールがくるようになってしまったとき、そのメールアドレスを登録しているサービスでメールアドレスを変更してから元のメールアドレスを無効にしてしまえば、その迷惑メールを受け取らなくてすむようになります。
まぁ今時は迷惑メールのフィルタが優秀なので気にしなくても良いといえば良いのですが。

転送だけなら Gmail にあるようなプラス記号を使った方法でも実現可能ですが、その場合上記のような拒否をする事が出来ません。
フィルタでみなかったことにするしかないですね。
ちなみにアカウント名のプラス記号は IMAP の仕様で、本来はフォルダへの振り分けに使われるものですが、これについて書き始めたら長くなりそうだったので割愛します……。

実際の設定方法

転送用メールアドレスの必要性を語ったところで、次は実際に設定してみます。
流れが分かる程度に簡潔に説明します。

Cloudflare にドメインを登録する

Cloudflare のダッシュボードからWeb サイトとしてドメインを登録します。
DNS を Cloudflare のものに変えるように指示されますので、レジストラの管理画面などで変更すれば OK です。
「アクティブ」という表示になると思います。

ちなみに今回の設定は無料で出来ます。
DNS サーバも Cloudflare が受け持つことになるのですが、AWS Route53 では1ドメイン(ゾーン)ごとに設定するだけでちょっとだけとはいえ料金がかかるのに対し、Cloudflare はかからないようです。凄い。

Email Routing を設定する

設定したいサイト(ドメイン)をクリックした後の左のメニューで「メールアドレス」というものがあれば、それが今回設定する Email Routing です。
ちなみに私は古い記事を参照していてベータ版で申し込みが必要と認識していましたが、今は正式版になっているようなので最初から表示されていると思います。
万一メニューにないようでもフォームに入力するだけなので、前述の記事の下の方にある「順番待ちリスト」に申し込んでみて下さい。

設定自体は簡単で、受け取りたいアカウント名をカスタムアドレスに設定し、転送先のメールアドレスを設定するだけです。
転送先のメールアドレスは予め受信できる事を確認するプロセスが必要ですが、届いたメールのリンクをクリックするだけでした。

注意しておくべき事項

DNS サーバを Cloudflare のものにする必要がありますので、例えば AWS Route53 で CloudFront や ELB のエイリアスを使っているなどは注意が必要です。

また残念ながら、どうもサブドメインでは設定が出来なさそうでした。
[email protected] は可能ですが、[email protected] は不可)
既に設定されているものを移行する場合は注意が必要です。

送信もしたい場合の解決方法

あくまで転送なので、受信しか出来ません。
基本的には受信だけできれば良いのですが、例えば通販サイトで届いた商品に問題があって問い合わせないといけないというような、ごくまれに送信の必要が出てくることがあると思います。

自前で送信用のメールサーバを用意するという方法はありますが、それを用意するならそもそも転送用も自前で用意すれば良いのでいまいちですね。
もちろん送信用だけに限るなら転送用を兼ねるより運用の手間は減ると思いますが。

そこで今回採用したのは送信を Gmail で行う方法です。
現在では smtp 認証などの 2FA が使えない認証は非推奨なのですが、一応そういうもののためにアプリパスワードというユーザのパスワードとは異なる別のパスワードを発行することが出来ます。
このアプリパスワードを発行したら、Gmail の設定「アカウントとインポート」の「名前」のところにある「他のメールアドレスを追加」から追加します。

名前に表示名、メールアドレスに送信したい転送メールアドレスを設定し、エイリアスとして扱うのチェックを外します。
次にメールサーバの情報が求められますので、メールサーバに smtp.gmail.com、ポートに587、アカウント名に Gmail のアカウントを @gmail.com まで、パスワードに先ほど設定したアプリパスワードを設定してあげれば完了です。

ちなみに From 行はそれで変わりますが、メールヘッダをくまなく見ると Gmail のアドレスはばれちゃいます。
これは仕方ない感じですね。

まとめ

MX レコードや SPF の設定は1クリックで出来るようになっており、非常に簡単でした。
ただ、転送用のメールアドレスは一つずつ設定するので、既存の環境を移行するのは大変かもしれません。
一応、設定されていない全てのアカウント宛のメールを全部転送する設定も出来るのですが……。

自前でメールサーバを運用する手間暇を考えると凄く良いサービスだと思います。

technical

Posted by yokky