The problem
Default WordPress form emails look generic. You want a clear subject line, your own HTML body, and dynamic values from the submission—without a separate email plugin.
The solution
Under After submit, enable Send admin notification and/or Send visitor confirmation. Open the action card → Content tab to customize subject and body. Leave fields blank to keep the default templates.
How to configure it
- Open the form → After submit.
- Add or open Admin notification or Visitor confirmation.
- On the General tab:
- On the Content tab, set subject and HTML body (or leave blank for defaults).
- Use Send test to preview with sample data.
- Save the form.
At least one delivery action must stay enabled: inbox, admin email, or webhook. Visitor confirmation alone is not enough.
Placeholders
Insert tokens from the Content tab picker, or type them manually:
| Token | Meaning | |---|---| | {{form.title}} | Form admin title | | {{form.slug}} | Form slug | | {{submission.id}} | Submission ID (after save) | | {{meta.source_page}} | Page title / path where the form was submitted | | {{field.FIELD_ID}} | Value of that field (use the picker for the right id) | | {{all_fields}} | HTML block of all submitted fields (body only, not subject) |
Subjects are plain text. Bodies are HTML; field values are escaped safely.
Delivery behavior
- Mail goes through
wp_mail(), or your SMTP account when routing is active. - From uses the site name (not “WordPress”).
- Reply-To uses the first email field on the form when present.
- Files: emails include the filename and an inbox link—not the file as an attachment. See file uploads.
- If mail fails after a valid submit, the visitor still sees success. Check Settings → SMTP → Logs and use Retry.
Tips
- Prefer SMTP on production so notifications do not land in spam.
- Keep admin subjects short and unique per form (e.g. include
{{form.title}}). - For CRM sync instead of (or in addition to) email, use Brevo, Mailchimp, or a webhook.