コンテンツにスキップ

08. メール

いまメールを送るのは 招待リンクの送信 1 か所だけです。 これから増やすための仕組みも、この章にまとめます。

1. 送るきっかけ

きっかけ 誰が 宛先 本文の要点
招待リンクの送信 企業アカウント・事業所アカウント 入力した 1 件のメールアドレス 会社名・事業所名と、スタッフ登録の URL

C-16 招待リンク の「メール送信」から送ります。

送らないもの

よくある想定 いまの扱い
応募があったことの通知 送りません。画面で確認します
確定・却下の通知 送りません
打刻の忘れの催促 送りません
請求書の送付 送りません。状態を手で記録します
パスワードの再発行 送りません。管理者が仮パスワードを画面で受け取り、口頭などで伝えます

2. 送信元

項目 値
送信元のアドレス noreply@redpl.app
送信元のドメイン redpl.app

返信を受け付けないアドレスです。問い合わせは本文に書いた窓口へ誘導します。

受け取る側の迷惑メール扱いを避けるため、ドメインの正当性を示す設定 (DKIM / SPF / DMARC)を入れてあります。

3. 本文の組み立て

部分 内容
件名 招待であることと会社名
本文(文字) あいさつ、事業所名、登録の URL
本文(装飾つき) 同じ内容を読みやすくしたもの

文字だけの本文も必ず付けます。装飾つきを表示しない環境でも 読めるようにするためです。

招待の URL はサーバ側で組み立てます。 メールを送った人がどの URL から操作したかに関係なく、 {会社の識別名}.redpl.app の形になります。

4. 送った記録

送信の試みはすべて記録します。画面には出ませんが、 「送ったのに届かない」を後から追えるようにするためです。

記録する値 意味
送信前 まだ送っていない
送信成功 送った
送信失敗 送ろうとして失敗した
送信抑止 こちらの判断で送らなかった(下記)
バウンス 届かずに戻ってきた
苦情 迷惑メールとして報告された

「送ろうとして失敗」と「そもそも送らなかった」を分けています。 原因がまったく違うためです。

記録には、宛先・件名・本文・送った人・送った日時も残します。

5. 検証環境での送信制限

検証環境では、許可した宛先以外に実際には送りません。

なぜ必要か

検証環境には test@example.com のような実在しないアドレスが たくさんあります。そこへ送ると「届かずに戻る」が積み上がり、 一定の割合を超えると送信サービス自体が止められます。

止まると本番の送信も道連れになります。送信サービスの評価は アカウント単位で、しかもこのアカウントは他のシステムと 共用しているためです。

どう止めるか

2 つの設定で決めます。

設定 既定 内容
制限を使うか 使わない 検証環境でだけ使います。本番では使いません
許可する宛先 空 完全一致(foo@gipple.jp)と、ドメイン指定(@gipple.jp)が書けます。大文字小文字は区別しません
状況 どうなるか
許可した宛先 ふつうに送ります
許可していない宛先 送らず、記録だけ 送信抑止 で残します
制限を使う設定なのに、許可リストが空 全部止めます

最後の 1 つを「全部止める」にしているのは、 「制限を入れたつもりで素通りしていた」が一番まずいためです。 安全な側に倒しています。

画面での見え方

止めたときは「送信しました」とは出しません。 送っていないことが分かる文言を、注意の色で出します。

止めているのに「送信しました」と出ると、届かない理由が 誰にも分からなくなるためです。

6. 届かなかったときの検知

届かなかった通知と、迷惑メールの報告を受け取る仕組みは用意してあります。 ただし自動で記録に反映する処理はまだありません。 いまは必要に応じて手で確認します。

7. ローカルでの確認

手元で動かすときは、実際には送らずログに出すだけです。 送信の記録は残るので、画面の動きは本番と同じように確かめられます。

くわしい手順は CLAUDE.md の「SES メール送信基盤」を見てください。