レコテック(kenzai-kaitori.jp)gpu-kaitori方式へ移行

メール送信の外部サービス依存解消と、スプシ記録経路の統一
報告日:2026年7月18日 対象サイト:kenzai-kaitori.jp 担当:榮元
全体進捗
73%

今回の作業の目的

先行稼働中のレコテックを、後発の gpu-kaitori.com で確立した「外部サービス不使用」の標準構成に統一します。移行完了で Resend(外部メール配信サービス)の無料枠が1ドメイン分空き、Resend 依存が完全になくなります。

変更内容(Before / After)

項目 Before(移行前) After(移行後)
メール送信 Resend(外部サービス) 自社 Xserver 上の mailer.php(HTTPS転送・追加費用ゼロ)
スプシ記録 GAS を直接呼び出し Cloudflare Worker(gas-proxy-rebro)経由 + Origin ヘッダ明示
使用する環境変数 RESEND_API_KEY / GAS_URL / GAS_TOKEN MAILER_URL / MAILER_SECRET のみ
フォーム 変更なし(現状の Contact Form 7 系フィールド名を維持)
本番サイト表示 変更なし(記事・デザインなど土居さん・辰巳さん・高山さんの更新はそのまま保持)

作業項目一覧

作業項目 ステータス 備考
1. 現状調査(contact.js / form / thanks / 404 の確認、B サイト状態確認) 完了 既存の form/index.html は新デザイン刷新済・確認画面なし・強制転送なし。404 も既に存在。
2. ローカル環境の整備 完了 Windows のパス長制限で中途半端に取り込まれていたリポジトリを、GitHub の最新(B サイト)に完全同期。core.longpaths=true をチーム共通ルールに追記。
3. サイトリポ整理(CLAUDE.md・_middleware.js を GitHub 反映) 完了 gpu-kaitori.com と同じ構成に。プレビュー URL に Basic 認証(PW: rebro)が有効化。
4. Xserver 側の準備(mailer-config.php に info@kenzai-kaitori.jp を追加) 完了 gpu-kaitori.com/public_html/mailer/ 内の設定に kenzai-kaitori.jp からの送信を許可。
5. Cloudflare DNS SPF に Xserver を追記 完了 既存の Lolipop 設定を残したまま include:spf.sender.xserver.jp を追加。DNS 反映確認済み。
6. Cloudflare Pages 環境変数の登録(MAILER_URL / MAILER_SECRET) 完了 wrangler CLI で kenzai-kaitori-jp プロジェクトに登録済み。
7. contact.js の書き換え(Resend → mailer.php / GAS 直叩き → Worker 経由) 完了 gpu-kaitori.com の contact.js をレコテック用に調整(フィールド名は Contact Form 7 系のまま維持)。GitHub に push 済み。
8. デプロイ後の動作確認 完了 debug モード(JSON応答)・normal モード(303→/thanks/)ともに成功。メール実物3通到達・スプシ新規行追加を目視確認。
9. 旧環境変数の削除(RESEND_API_KEY / GAS_URL / GAS_TOKEN) 保留 高山さん復帰後に確認して実施予定。
10. Resend アカウントの扱いを決定 保留 ドメイン解除/解約の判断は高山さんと相談。
11. チャットワーク報告 未着手 保留2項目の判断が出た後にまとめて報告予定。

動作確認結果

debug モード
✅ ok:true
normal モード
✅ 303 → /thanks/
管理者宛メール
✅ 2通到達
お客様自動返信メール
✅ 1通到達
スプレッドシート記録
✅ 新規行追加
文字化けチェック
✅ なし

高山さん復帰後に相談したい事項

項目 相談内容
旧環境変数の削除 RESEND_API_KEY / GAS_URL / GAS_TOKEN を Cloudflare Pages から削除してよいか。新コードは使っていないため、残しておいても機能上の問題はないが、掃除しておくと gpu-kaitori と同じ状態に揃う。
Resend アカウントの扱い レコテック用ドメインを Resend 側から解除してよいか。Resend アカウント自体は残すか完全解約するかの判断。