EmDash に移す日は DNS を移してから Email Sending に登録する
受託で作ったお客様のサイトを EmDash(Cloudflare が 2026年4月に出した Astro 製のオープンソースの CMS)に移しました。EmDash はサーバーレスの実行環境の Cloudflare Workers で動くため、一般的なレンタルサーバーのそれとは違います。そのため、切り替えの日に何が変わるのかを確かめながら進めました。
まず、Workers に載せると、問い合わせの通知と自動返信をレンタルサーバーの SMTP では送れなくなります。そこで Cloudflare の Email Sending(Workers の有料プランで使える、どのアドレスにでもメールを送れる機能)に送信元のドメインを登録して送ることにしました。Email Routing(ドメイン宛てのメールを転送する機能)を使う無料の方法では自動返信が送れず、お客様に確認メールのリンクを押してもらうことになるからです。
登録は DNS を Cloudflare に移した後にしかできないので、切り替えの日は「DNS を移す → Email Sending に登録する → 送信元を変える」の順になります。
問い合わせの通知と自動返信は Email Sending で送る
これまで、このお客様のメールはレンタルサーバーに置いていて、問い合わせが来ると、お客様宛ての通知と問い合わせた人への自動返信を、そのレンタルサーバーの SMTP から送っていました。Workers にはメールを送る機能(SMTP サーバー)が付いていないので、EmDash のサイトでは、通知と自動返信を EmDash のメール送信のプラグインから Cloudflare 経由で送るようにしました。
Cloudflare から送る方法は 2つあります。
- Email Routing の確認済みの宛先へ送る方法
- Email Sending で送る方法
Email Routing では、Workers から送れるのは「確認済みの宛先」にしたアドレスだけです。宛先にしたアドレスへ Cloudflare から確認メールが届き、その持ち主がリンクを押すまで送れないので、お客様のアドレスを通知先にすると、お客様自身に確認メールのリンクを押してもらうことになります。お客様にとっては何のために必要なのか分かりづらいので、この方法はやめました。そもそも、自動返信は宛先が問い合わせた人のアドレスで毎回違うので、確認済みの宛先の方法では送れません。
Email Sending なら、確認なしでどのアドレスにでも送れます。使えるのは Workers の有料プラン(月5ドルから、2026年10月時点)で、まだベータの機能ですが、使う判断をしました。(お客様との関係性もあったため)
お客様宛ての通知は返信先(Reply-To)を問い合わせた人のアドレスにしたので、お客様が通知にそのまま返信すれば、問い合わせた人に届きます。
自動返信は問い合わせた人が宛先を自由に決められ、悪用されると誰にでもメールを送れてしまうので、Workers の Rate Limiting で同じ IP から 1分に 3回までに制限しました。
切り替えの日は DNS、登録、送信元、ログインの順
切り替えの日までは、お客様のドメインではない別のドメインのアドレスを送信元にして送っていましたが、切り替え当日は次の順で進めました。
- DNS を Cloudflare に移す
- Email Sending に送信元のドメインを登録する
- サイトの送信元のアドレスを、お客様のドメインのアドレスに変える
- 私が本番のドメインでマジックリンク(ログイン用のリンクをメールで送る仕組み)からログインし、パスキー(端末の生体認証などでログインする仕組み)を登録し直す
Cloudflare がお客様のドメインのアドレスから送れるのは、ドメインの DNS を Cloudflare に移し、Email Sending に登録した後です。送信元のアドレスを先に変えると、お客様宛ての通知まで送れなくなります。
Email Sending の登録で足されるのは送信用のサブドメインの MX・SPF・DKIM とドメイン直下の DMARC だけで、レンタルサーバーを指すドメイン直下の MX とはぶつかりませんでした。Email Routing はこの MX を置き換えるので使いませんでした。
ログインを最後にするのは、マジックリンクもメールで届くので、送信が動いていないとログインもできないからです。パスキーは登録したときのサイトのドメインに結び付くので、仮のドメイン(workers.dev)で登録したパスキーは本番のドメインでは使えません。EmDash 1.3.0 はサイトの URL を、設定ファイルの siteUrl、環境変数 EMDASH_SITE_URL、リクエストの origin の順で決めるので、本番のドメインを EMDASH_SITE_URL に置くと、マジックリンクとパスキーが本番のドメインになります。
問い合わせた人に自動返信を送るサイトなら、Email Sending と Workers の有料プランが前提ですが、お客様宛ての通知だけを送るサイトで、お客様に確認メールのリンクを押す案内をしても問題ない場合は無料プランでも問題ありません。