The standard WordPress contact form setup requires a form plugin (Contact Form 7, WPForms, Gravity Forms), an SMTP plugin (WP Mail SMTP, FluentSMTP), an SMTP service, and DNS records (SPF and DKIM). Four moving parts for a contact form.
The alternative: write the HTML form directly and point it at a third-party form handling service (Formspree, Basin, Getform). The service receives the submission and delivers it to an inbox. No WordPress plugins, no SMTP configuration, no DNS changes. The trade-off: this handles contact form submissions only, not WordPress system email (password resets, notifications, WooCommerce orders). Those still need the standard SMTP setup.
Why Use a Third-Party Service for Form Handling
An HTML <form> element needs a server-side endpoint to receive the submitted data. WordPress itself provides no built-in form handling. A form plugin solves this by processing submissions within WordPress and sending them via wp_mail(). A third-party form handling service solves it differently: the form’s action attribute points to an external URL, and the service processes the submission, delivers the notification email, and optionally stores the data or forwards it to integrations (Airtable, Mailchimp, Slack).
How a form handling service works
When a visitor submits the form, the browser sends the data to the external endpoint specified in the form’s action attribute. The service receives the POST request, formats the submission as an email, and delivers it to the address configured in your account. Most services also store submissions in a dashboard and offer webhook or integration forwarding.
Choosing a form handling service
Five services handle this well. Each offers a free tier; they differ in integration depth, pricing at scale, and spam handling.
MailThis.to
MailThis.to is the simplest of the group. Point a form at their endpoint; submissions arrive as email. Free up to 250 emails, then $5 per 1,000.

FormBackend
FormBackend handles submissions without server-side code. Point the form at their endpoint; submissions forward to email. Integrates with
Zapier for workflow automation.

Getform
Getform provides the same endpoint-based model with broader integrations: Zapier, Slack, Google Sheets, and direct webhooks. It also supports file uploads in form submissions, which the simpler services do not.

Formspree
Formspree offers a similar service. It also provides an endpoint for your form and sends submissions straight to your email. Its higher tier supports custom email templates, custom domains, and a rules engine.

Formspark
Formspark also gives you a unique endpoint for your form and the form submissions are emailed to you. It offers integration with a wide range of third-party services, including
Slack. Plus, it offers analytics and spam protection.

All five services offer a free tier. The differences that matter are integration depth (Getform and FormBackend lead), file upload support (Getform), and pricing at scale. For a basic contact form on a WordPress site, any of them work; pick based on which integrations you actually need.
Steps to set up your form
1. Sign up for your chosen service
Create an account with the service. Each provider’s signup flow takes a few minutes and requires an email address for delivery configuration.
2. Grab your form HTML and your unique unique endpoint
The service provides a unique endpoint URL and sample HTML. The endpoint is the action attribute of the form – the URL the browser sends submission data to. Copy the HTML from the service dashboard. It will look something like this:
<form action="https://your-endpoint.com" method="post">
<label>
Name
<input type="text" name="name" required>
</label>
<label>
Email
<input type="email" name="email" required>
</label>
<label>
Message
<textarea name="message" required></textarea>
</label>
<button type="submit">Send</button>
</form>
Replace https://your-endpoint.com with the endpoint from your service. The required attribute on each field enforces client-side validation before submission.
3. Create the HTML form in WordPress
- Navigate to the page where you want to add the form and open the editor.
- Click on the “+” button to add a new block.
- Search for “HTML” in the block library and select the “Custom HTML” block.

Image credit: FormBackend
- Paste your form HTML into this block.
- Click “Publish” to publish your page.
The form is now live. Submissions go directly to the external service, bypassing WordPress entirely. This handles contact form submissions only – WordPress system email (password resets, WooCommerce order notifications) still requires the standard SMTP setup.
Security and Privacy Considerations
Form submissions go to a third party. Two things to verify before deploying:
- Data transmission. Confirm the service accepts submissions over HTTPS. All five listed above do.
- Privacy disclosure. If you operate under GDPR or similar regulation, disclose the third-party processor near the form and link to their privacy policy. The services listed above all publish data processing agreements.
Collect only the fields you need. A contact form rarely needs more than name, email, and message.

