最近、Emailネタが多くなっている気がしますが。Gmailをカスタムドメインで使用する機能が有料化されて、メールシステムをどうしようか思っているのが関係しているのだと思う。
今までは、メールシステムを自分で作って、運用するという構成法を見てきました。
- Docker MailserverでEmailサーバーを10分で立てる
- Docker MailserverからMailjetにrelayさせてEmailの送信をする
- Docker Mailserverのメールアカウント管理
ただ、この場合、ホストマシンが必要になるのでやや面倒。無料のクラウドサービスで閉じる方法はないのかと思って見ていたら、多分Cloudflare Email Routingを使うのが一番簡単、安く、早そうだ。理屈はこうだ。
- カスタムドメインを確保して
- Cloudflrare Email Routingでカスタムドメイン宛のメールを全部Gmailに転送する
- Gmailでメールの受信・管理・閲覧をする
今までGmailで使っていたカスタムドメインをそのまま使うことにすれば良いので、Cloudflareのアカウントを作れば良い。
1. カスタムドメインをCloudflareに登録する
Email Routingを使うには、持っているドメインをCloudflareに登録する必要がある。Cloudflareのメニュー「Webサイト」から登録できる。 ちなみに、CloudflareはDNSサービス(無料)や、レジストリサービス(ドメイン保有・管理、卸値価格)もやっているが、Email Routingを使う場合、これらのサービスを使っていなくも問題ない。これらのサービスについては、以下の記事でまとめいる。
この記事では、例としてmk01.xyz
というカスタムドメインを使う(初年99円くらいで買えるので)。
2. Email Routingの設定
Cloudflareのメニューから、上記で登録したカスタムドメインのページを開く。そうすると、メニューに「メールアドレス」が出てくるので、設定ページにジャンプする。
2.1 転送先のメールアドレスの登録
転送先のEmailアドレス(Gmailのアドレス)を登録する。登録すると、確認メールが届き、認証リンクをクリックするまでは使えない。転送先は複数登録できるようになっている。
2.2 カスタムドメインのDNSにMXレコードを追加
Cloudflareの画面上にMX
とSPF
レコードが出てくるので、これをカスタムドメインのDNSに登録する。ちなみに、Cloudflare DNSを使っている場合は、自動でやってくれる(さすが)。
今回は、別のDNSサービスを使ってみて、動作するか確認してみた(結論、問題なく動作する。当たり前か。)
DNS登録した後は、dig
で確認してみる。
### MXレコード
$ dig mk01.xyz mx
; <<>> DiG 9.10.6 <<>> mk01.xyz mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13446
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;mk01.xyz. IN MX
;; ANSWER SECTION:
mk01.xyz. 3600 IN MX 95 linda.mx.cloudflare.net.
mk01.xyz. 3600 IN MX 31 amir.mx.cloudflare.net.
mk01.xyz. 3600 IN MX 62 isaac.mx.cloudflare.net.
;; Query time: 37 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Feb 23 18:12:29 JST 2022
;; MSG SIZE rcvd: 119
### SPFレコード
$ dig mk01.xyz txt
; <<>> DiG 9.10.6 <<>> mk01.xyz txt
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28023
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;mk01.xyz. IN TXT
;; ANSWER SECTION:
mk01.xyz. 3600 IN TXT "v=spf1 include:_spf.mx.cloudflare.net ~all"
;; Query time: 22 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Feb 23 18:13:54 JST 2022
;; MSG SIZE rcvd: 92
問題なさそうだ。
2.3 メールのルーティングを設定する
メールのルーティングは以下の2つの設定になっている。
- 個別のメールアドレスごとのカスタム設定
- 上記のカスタム設定にないアドレスに届いた場合の設定(Defaultの設定)
両方とも、“このアドレスに転送"か"Drop”(ブラックホール)が設定できる。
カスタム設定では、もちろん、複数のメールアドレスが登録できる。
デフォルト設定ではこのカステムドメイン宛に届いた全てのメールをどこかに転送することもできる。 が、実際は、安全のため"Drop"にするのが無難だろう。
以上で設定は完了。
あとは、メール送信をしてみて、Gmailで受信できるかをみるだけだ。
まとめ
一度設定しておけば、緊急的にメールアドレスが必要になった場合でもCloudflareにログインして、即受信できるEmailアドレスが用意できる。
設定してみて気づいた制限としては、トップレベルドメインしか登録できない模様。サブドメインは使えない。