Form

Send form data via email or webhooks

The Form Component is a flexible and powerful solution for sending form submissions either to your own email server or via a webhook.

💡 Recommendation

We recommend using a Webhook to handle email delivery or data collection. It’s significantly more reliable and easier to set up than configuring SMTP manually, which can often lead to issues with authentication, server compatability, spam filters, or SSL mismatches.

Server Requirements

The Form Component in Elements requires PHP 8.1 or newer. You can run the built-in PHP Server check to ensure your server meets this requirment.

✅ Form Compatibility Checklist

Before going live with your form, make sure you’ve covered the following essentials. These common issues can prevent form submissions from working correctly, so it’s worth double-checking everything below:

⚠️ Troubleshooting Email Sending Issues

If you've published your form, and are still having issues, please run through this troubleshooting guide to help resolve common issues:

  1. Run the PHP Server check to ensure version on your server meets the minimum requirements.

  2. Check your hosting provider’s documentation to ensure outbound SMTP is supported.

  3. Ensure you have entered the correct details for the Form Setup, this is worth triple checking as this is the most common cause of why a form is not delivering email.

  4. In some cases, your email provider will block sending if the From address doesn’t match your SMTP account. Make sure: The From Email matches the SMTP Username. The To Email is valid and not blacklisted or blocked by spam filters.

  5. Review your form logs to see detailed error messages, this can be found at the following location on your server: rw/elements/com.realmac.corepack/api/logs the file name will look something like this form_rw904107B7_1234_4FDC_9B97_1D9A663C1B17-2025-07-24.log — Note the date on the end of the file, this is helpful for ensure you're checking the correct log file.

  6. If you are sure all your details are correct, and you have verifed them with your email hosting provider, please post your issue on our forum and we'll help you troubleshoot further.

✅ Match Your SMTP Settings to Your Domain

When using a custom SMTP server to send form submissions, it’s important that your SMTP settings match your domain configuration.

Here’s what to check:

  • Email Address: Make sure the “From” address you’re using belongs to the same domain your site is hosted on (e.g. [email protected] if your site is hosted at yourdomain.com).

  • SMTP Server: Use the correct hostname for your mail server. This should match the SSL certificate used by the server (e.g. mail.yourdomain.com, not just localhost or an IP).

  • TLS/SSL Certificate: Your mail server must have a valid certificate that matches the SMTP server hostname. If there’s a mismatch, some providers (especially Gmail) will reject the connection.

  • Authentication: Use the correct username and password for your SMTP account.

✅ PHP Server Check

We recommend PHP 8.4 or later for best performance, but the minimum supported version is 8.1.

To check is the Elements API is running as expected on your server, simply append ?apicheck to the URL of any page containing a Form.

my-website.com/contact/?apicheck

⚠️ Form Logs

To help diagnose issues with your Form, Elements generates detailed log files on your server.

Log Location

The logs folder is located at the root of your web server, alongside other top-level folders like index.html, images, or css.

rw/elements/com.realmac.corepack/api/logs

Example Log Name

The date at the end of the filename makes it easy to identify the most recent log. Make sure you’re checking the correct file based on when the issue occurred.

form_rw904107B7_1234_4FDC_9B97_1D9A663C1B17-2025-07-24.log

Form Components

To function correctly, the following Components must be placed inside a Form Component wrapper.

Form Component
Details

Attachment

Allows users to attach files to a form submission. You can limit attachments by file type or size. Multiple files are supported when sending forms via email, though Webhooks are limited to a single file.

Checkbox

Collects one or more yes/no values. Commonly used for terms and conditions, opt-ins, or preferences. Often paired with a Label for clarity and accessibility.

Error

Displays an error message when the form fails to submit. Useful for alerting users to missing fields or validation issues.

Input

A single-line text field for collecting user input such as names, email addresses, or numbers. Supports placeholder text and validation options.

Label

Describes the purpose of a form field. Helps improve accessibility and is typically used alongside Input, Checkbox, or Radio components.

Radio

Lets users choose a single option from a predefined list.

Submit

Triggers the form submission. You can place a Button, Image, or other interactive element inside this component to send the form.

Success

Displays a success message when the form has been submitted successfully.

Form Setup

To recive emails via the Form Component you will need to enter your Email server details. Here’s a breakdown of what each field means and what you’ll need to configure to make it work properly.

Authentication Settings
Details

Host

Email host address. e.g. mail.yourdomain.com

Port

The port number the email server uses for sending messages. - 587: For TLS encryption (most common) - 465: For SSL encryption. - 25: For non-encrypted emails (not recommended).

Encryption

Choose the encryption method required by your email provider. None, TLS, SSL

Username

The email address or username for the SMTP account you’re using to send emails. e.g. [email protected].

Password

The password for your SMTP account.

Email Settings
Details

From Name

Set as needed (e.g. Jonny Appleseed)

From Address

Should match the Username for the account. This is usually the main issue if messages don’t send.

Subject

The subject of the email you'll receive. e.g. "Website Feedback"

To Name

The name the email will be addressed to. e.g. "Team Realmac"

To Address

The email address the form submission will be sent to. e.g. "[email protected]"

Reply-to Address

In order for Elements to correctly set the “reply-to” header in the outgoing email, the form field name must be set to email, all lowercase.

Form Webhooks

A webhook allows your form submissions to be sent directly to another service, like a database, CRM, or automation tool without needing to check emails or manually process the data. By sending form data to a webhook, you can trigger workflows in Zapier, Make, or Pipedream, making it easy to do the following (and so much more):

• Add a new lead to Airtable or Google Sheets

• Send a follow-up email through Mailchimp or ConvertKit

• Notify your team in Slack or Discord

• Create support tickets in Zendesk or Trello

There's really no limit to what you can do with the new webhooks feature. Whether you’re building a customer support system, a lead capture form, or a dynamic survey that feeds into a database, webhooks unlock powerful automation and customization that email simply can’t match.

Webhooks and Attachments

If you are using an attachment in your form, only the first attached file will be sent via the WebHook. Multiple files are supported when sending forms via email.

Most webhook endpoints expect a single file attachment, typically for straightforward processing, like saving it to cloud storage or forwarding it via email. Supporting multiple files would require a more complex multipart or array-based structure, which many webhook endpoints don’t handle out of the box.

Testing Webhooks Locally

Webhook submissions require a server environment, so once you publish the page to a server—either a remote server or a local one—you should find the submission works as expected.

If you want to test everything locally, you’ll need to set up a local web server on your Mac. We recommend ServBay for this.

Here’s a quick guide:

  1. Install ServBay

  2. Publish your Elements site to a local folder

  3. In ServBay, create a new site and point the root directory to your published folder

  4. Open the site in your browser through ServBay for full local testing—including Forms and webhooks

Last updated

Was this helpful?