燕メールドキュメントログイン

webhook で送る

CMS やフォームサービスの webhook 設定に、発行される受信URLを貼るだけです。 送信元のサービスは問いません。

送り先

POST https://tsubamemail.com/hooks/<受信URLのトークン>
Content-Type: application/json

受信URLは受信口の設定 →「接続方法」に出ます。送信元の設定で形式に JSON を選んでください。

本文の形

決まった形はありません。サービスごとに形が違うので、 よくある入れ物を順に探して値を取り出します。詳しくは値の取り出しを見てください。

{
  "お名前": "山田 太郎",
  "メールアドレス": "yamada@example.com",
  "お問い合わせ内容": "見積もりをお願いします"
}

dataentry.data のような入れ物で包まれていても、 そのまま送って構いません。

なりすまし対策

基本は受信URL

受信URLのトークンは推測できない値です。これが漏れなければ、第三者は投げられません。公開の場所に貼らないでください。ブラウザから直接叩く用途には向きません(その場合はサイトのフォームを使ってください)。

共有シークレット(任意)

送信元がリクエストヘッダを付けられる場合、「ヘッダ名+期待値」を照合できます。 受信口の設定 →「接続方法」で、両方を設定したときだけ有効になります。

POST /hooks/<トークン>
X-Webhook-Secret: 送信元に設定した秘密の文字列

不一致・欠落は 401 で拒否し、受信ログに「シークレット不一致」として 残します。送信元ごとに異なる HMAC 署名方式には対応していません。

応答

状態意味
200受け付けた(通知は非同期で送ります)
401共有シークレットが不一致・欠落
403この受信口は webhook 経路ではない
404受信URLが存在しない
422本文から値を取り出せなかった
413本文が 256KB を超えた

再送の要否は送信元の仕様に依存します。200 を返した時点で受信ログには 残っているので、通知メールが遅れても内容は失われません。

試す

curl -X POST https://tsubamemail.com/hooks/<トークン> \
  -H 'content-type: application/json' \
  -d '{"お名前":"山田 太郎","メールアドレス":"yamada@example.com","本文":"テスト"}'

送ったあと、受信口の「受信ログ」タブで取り出せた項目を確認できます。