# フォームの送信データに受信トレイから直接返信する

> フォームの通知メールで Reply を押すと、フォームに入力した人宛てになるようにします。使えるフィールド名、_replyto を使う場面、返信が迷子になる理由を説明します。

公開日 2026-10-25 · https://ikiform.com/ja/guides/send-form-to-email/reply-to

フォームのメールのフィールド名を `email` にすると、Ikiform がそのアドレスを通知メールの Reply-To ヘッダーに入れるので、**Reply** を押せば自分のメールボックスから訪問者宛てに返信できます。フィールド名が違う場合や、フォームで 2 つのアドレスを尋ねる場合は、正しいほうを入れた `_replyto` フィールドを追加します。どちらもなければ、返信は誰も読まない `notifications@ikiform.com` に届きます。

## ここが違う

通知メールには、重要なアドレスが 2 つあります。**From** は送信者で、到達率のためにこれは Ikiform でなければなりません。**Reply-To** は返信の宛先で、これは訪問者であるべきです。メールアプリは Reply-To があればそれを使い、なければ From を使います。つまり、Ikiform が送信の中から訪問者のアドレスを見つけられるようにすることがすべてです。

Ikiform は返信先のアドレスを、まず `_replyto` フィールドから、次に `email`、`email_address`、`your_email`、`reply_to`、`contact_email` という名前のフィールドから設定します。値は有効なメールアドレス 1 つでなければならず、そうでなければ無視されます。

図: Ikiform が返信先のアドレスを選ぶ方法

1. 送信に有効なメールアドレス 1 つを含む _replyto フィールドがあれば、それが返信先です。ほかのどのフィールドよりも優先されます。
2. なければ、Ikiform は送信された順にフィールドを見て、認識できる名前で有効なアドレスを持つ最初のものを使います。
3. どちらもなければメールに Reply-To ヘッダーは付かず、Reply を押すと notifications@ikiform.com 宛てになります。

カンマ、改行、山かっこを含む値は無視されるので、2 つ目のアドレスやヘッダーを追加することはできません。

## 使えるフィールド名

照合では大文字と小文字を区別しないので、`email` だけでなく `Email` や `EMAIL` も使えます。よくある名前の扱いは次のとおりです:

| フィールド名 | 返信先に使われるか | 理由 |
| --- | --- | --- |
| `email`, `Email`, `e-mail` | はい | 大文字小文字を問わず、ハイフンの有無も問わない基本の名前 |
| `email_address`, `email-address`, `emailAddress` | はい | 単語の間が `_`、`-`、または何もない長い形 |
| `your_email`, `contact_email`, `reply_to` | はい | フォームテンプレートでよく使われる名前 |
| `user_email`, `work_email` | いいえ | Ikiform が知らない接頭辞です。名前を変えるか `_replyto` を追加してください |
| `Email Address` | いいえ | 空白は区切り文字になりません。ラベルを名前に使うビルダーでよく起こります |
| `Email 2` | いいえ | ビルダーが 2 つ目のメール欄にこう番号を付けます |

## 設定する 3 つの方法

下のフォームはデモのリクエストで、アドレスは仕事用のメールで、2 つ目のアドレスと並ぶこともあります。どこまで変更できるかに合わせて選んでください:

**フィールド名を変える** (`demo.html`)

```html
<form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
  <label for="work-email">Work email</label>
  <input id="work-email" name="email" type="email" autocomplete="work email" required />

  <label for="company">Company</label>
  <input id="company" name="company" autocomplete="organization" />

  <label for="message">What are you trying to solve?</label>
  <textarea id="message" name="message" rows="5" required></textarea>

  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
  <button>Request a call</button>
</form>
```

**_replyto にコピーする** (`demo.html`)

```html
<form id="demo" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
  <label for="work-email">Work email</label>
  <input id="work-email" name="work_email" type="email" required />

  <label for="referrer-email">Who referred you? (their email)</label>
  <input id="referrer-email" name="referrer_email" type="email" />

  <input type="hidden" name="_replyto" />
  <button>Request a call</button>
</form>

<script>
  const demo = document.getElementById("demo");
  demo.addEventListener("submit", () => {
    demo.elements.namedItem("_replyto").value = demo.elements.namedItem("work_email").value.trim();
  });
</script>
```

**サーバーから** (`send.ts`)

```ts
const origin = request.headers.get("origin");
const response = await fetch("https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx", {
  method: "POST",
  headers: {
    Accept: "application/json",
    "Content-Type": "application/json",
    Authorization: `Bearer ${process.env.IKIFORM_SECRET_KEY}`,
    ...(origin ? { Origin: origin } : {}),
  },
  body: JSON.stringify({
    work_email: values.workEmail,
    referrer_email: values.referrerEmail,
    company: values.company,
    message: values.message,
    _replyto: values.workEmail,
    _gotcha: values.honeypot,
  }),
});
```

- HTML を自分で管理しているなら **名前を変えます**。ラベルは「Work email」のままで構いません。大事なのは `name` だけで、`autocomplete="work email"` でブラウザーの自動入力も正しく動きます。
- 他のシステムが `work_email` を前提にしている場合や、フォームにアドレスが 2 つあって違う方が一致してしまう場合は、**`_replyto` にコピーします**。スクリプトが送信時、ブラウザーが送る前に hidden フィールドを埋めます。
- **サーバーから** 送るなら、JSON のボディに `_replyto` を追加します。フォームのフィールドである必要はまったくありません。サーバー自身の `fetch` はオリジンを送らず、Ikiform は無料の `localhost` テストをこのヘッダーで判定するので、受け取ったリクエストの `Origin` を引き継いで渡します。

`_` で始まるフィールドは回答として保存されないので、`_replyto` がメールに 2 回表示されることはありません。送信データには `meta.reply_to` として残り、Webhook と [REST API](https://ikiform.com/ja/docs/api.md) に含まれます。

> コピーするスクリプトが動かないと `_replyto` は空で送信され、Ikiform はそれを無視します。`work_email` は認識される名前ではないので、その送信データには返信先がありません。できればフィールド名を変えてください。そちらには失敗するパターンがありません。

## 誰に返信しているのか

返信先は訪問者が入力したものそのままです。Ikiform が確認するのは形式の正しいアドレスが 1 つであることだけで、本人のものかどうかは確認しません。ボットやいたずらで他人のアドレスが入力されれば、返信は見知らぬ人に届きます。

- 最初の返信は一般的な内容にとどめてください。相手がそのアドレスから返信してくるまでは、アカウント情報や請求書など個人的なものは送らないでください。
- 使い捨てドメインのアドレスはスパムスコアを 2 上げます。まったく同じ再送信などの別のシグナルと合わされば、受信トレイに届かないようにするには十分です。
- アドレス宛のメールが戻ってきたら、入力ミスか偽のアドレスです。残りの内容が必要なら、送信データはダッシュボードに残っています。

## 訪問者が返信で目にするもの

ほとんどのメールアプリは、返信元のメッセージを引用します。ここではそれが Ikiform の通知なので、訪問者には自分の回答が一覧になったものと、通知のフッターが見えます。たいていは問題なく、何を尋ねたかの確認にもなります。**Send** を押す前に、2 点だけ見ておくとよいでしょう:

- フッターにはあなた向けのリンクがあります。メンバー向けの **View submission**、外部の受信者向けの配信停止リンク、不正利用の報告先アドレスです。ダッシュボードのリンクはワークスペースにログインしている人にしか使えませんが、送りたくなければ引用部分を削除してください。
- 複数の人が通知を受け取っている場合、それぞれの返信が訪問者との別々のスレッドになります。誰が返信するかを決めておかないと、訪問者に 2 通の異なる返信が届きます。

通知が一切見えない返信にしたいですか？ **Reply** を押す代わりに、そのアドレス宛に新しいメールを作成してください。引用された質問はなくなるので、答える一文をコピーしておきましょう。

## 動作を確認する

1. ページのフォームに入力して送信します。自分のサンクスページか、Ikiform のサンクスページに移動します。
2. 通知を開いて、ヘッダーか返信先の行を見ます。**Reply-To** に入力したアドレスが表示されます。
3. **Reply** を押します。**To** の行には訪問者のアドレス、**From** の行にはあなたのアドレスが入っています。
4. `a@b.c, x@y.z` のような形式の崩れたアドレスを `_replyto` に入れて再度送信します。メールは次の有効なフィールドを返信先にして届くか、返信先なしで届きます。

## ハマりどころ

- **ダイジェストには返信先がありません。** 1 時間に 50 通を超えると、フォームは残りを 1 通のダイジェストにまとめ、そこには多くの訪問者が含まれます。それらにはダッシュボードから返信してください。
- **全員に返信。** 通知は受信者ごとに別々に送られるので、全員に返信しても自分のアドレスが加わるだけです。チームが CC に入ることはありません。
- **Outlook の返信ルール。** 企業のメール環境によっては、外部メールの Reply-To を書き換えたり無視したりします。それでも **Reply** で Ikiform のアドレスが表示される場合は、メールサーバーの管理者に確認してください。
- **スパムでは何も送られません。** スパムとして保存された送信データには、返信するメールがありません。スパムではないとマークすると、その時点でメールが送られます。
- **1 つのフィールドに 2 つのアドレス。** `ada@example.com, bob@example.com` のような値は、カンマで余分な受信者を紛れ込ませられるので、返信先としては無視されます。1 つのフィールドにはアドレスを 1 つだけ入力してもらってください。
- **hidden の入力欄に名前を付けられないビルダー。** サイトビルダーによっては、フィールドを `_replyto` と名付けられません。代わりに表示されているメール欄の名前を `email` に変えてください。同じ役割を果たします。

## よくある質問

### サーバーから JSON を送信した場合も reply-to は機能しますか？

はい。Ikiform は JSON、urlencoded、multipart のどの送信でも、_replyto とメール名のフィールドを同じように読みます。アドレスのフィールドが別の名前なら、JSON のボディに _replyto を追加してください。

### 返信が notifications@ikiform.com 宛になるのはなぜですか？

送信に _replyto フィールドも、認識されるメール名のフィールドもありませんでした。メールのフィールドを email、email_address、your_email、reply_to、contact_email と名付けるか、_replyto を追加してください。

### _replyto フィールドとは何ですか？

通知メールの返信先アドレスを設定する予約済みフィールドです。有効なメールアドレスを 1 つだけ入れる必要があり、回答としては保存されず、Webhook と API には meta.reply_to として渡されます。

### フォームにメールのフィールドが 2 つあります。どちらが使われますか？

_replyto を送ればそれが使われます。そうでなければ、送信された順で、名前が認識され、値が有効なアドレスである最初のフィールドです。どちらを使うかを明示するには _replyto を送ってください。

### From アドレスを自分のドメインに変えられますか？

いいえ。通知は notifications@ikiform.com から送られ、そのおかげであなたの側で DNS を設定しなくてもスパムチェックを通過できます。返信は自分のメールボックスから送るので、あなた自身のアドレスから届きます。

## その他のガイド

- [フォームをメールに送る](https://ikiform.com/ja/guides/send-form-to-email.md): メールサーバーなしで、すべての送信データを受信トレイに届けます。mailto: と PHP の mail() がうまくいかない理由と、スパムを除外して返信もできる構成を解説します。
- [Gmail へ](https://ikiform.com/ja/guides/send-form-to-email/gmail.md): mailto: リンクもアプリパスワードも Apps Script も使わずに、フォームの送信データを Gmail で受け取り、ラベルを付け、迷惑メールを避け、Gmail から返信します。
- [複数の受信者](https://ikiform.com/ja/guides/send-form-to-email/multiple-recipients.md): 1 つのフォームをチーム全員にメールで送ったり、トピックごとに適切な担当者に振り分けたり。ただし、誰に送るかをフォーム自身には決めさせません。
- [PHP なしで](https://ikiform.com/ja/guides/send-form-to-email/without-php.md): mail() を呼ぶ contact.php スクリプトを、ホストされたエンドポイントに送信するフォームに置き換えます。フィールド名、サンクスページ、返信はそのままです。
- [EmailJS の代替](https://ikiform.com/ja/guides/send-form-to-email/emailjs-alternative.md): お問い合わせフォームを EmailJS から移行。ブラウザー側のメールキーのリスク、コードの変更点、自動返信など失うものを解説します。
- [Next.js](https://ikiform.com/ja/guides/send-form-to-email/nextjs.md): Server Action で Next.js のフォームをメールで送る 2 つの方法を公平に比較します。Resend や Nodemailer で自分で送るか、フォームバックエンドに転送するかです。
