公開ボタンを押し直しても、案内メールを二重送信しないようにした話

公開ボタンを押し直しても、案内メールを二重送信しないようにした話

記事
IT・テクノロジー
今日は、Next.jsとSupabaseで作っているサロン掲載管理で、「公開したら案内メールを送る」処理を見直した。

掲載内容を管理画面で確認し、公開へ切り替えたタイミングで、登録者へ掲載開始メールを送る仕組みを入れていた。ところが、紹介文の修正や確認のために公開操作をやり直すと、同じ案内がもう一度届く可能性がある。処理自体は成功していても、利用者から見ると「また設定が必要なのか」「別の申込ができたのか」と迷わせてしまう。

そこで、メール送信を単純なボタン操作ではなく、送信履歴とセットで判定するようにした。初回の公開では送信し、送信済みの記録がある場合は24時間以内の再送を止める。宛先は掲載申込用のメールアドレスを優先し、空欄ならアカウント側の連絡先へ切り替える形にした。Resendへ渡す前に宛先を確定し、同じ処理の途中で二度呼ばれないよう条件も整理した。

確認では、初回公開で1通だけ届くこと、公開をやり直しても重複しないこと、専用メールが未入力でも代替連絡先へ届くことを分けて試した。管理画面の文言も、メールが送られたのか、今回は送信対象外だったのかが分かる表現にそろえた。

自動メールは、送れることより「必要な一通だけを確実に送ること」のほうが難しい。画面の操作回数と通知回数を直結させず、履歴を使って安全側へ倒す判断が大切だと改めて感じた。

Webサービスの通知機能、管理画面、Supabaseや外部メールAPIを使った既存システムの改修も、現在の運用を確認しながら対応しています。「二重送信を防ぎたい」「手作業の案内を自動化したい」といった段階からご相談ください。
サービス数100万件のスキルマーケット、あなたにぴったりのサービスを探す