HelipodDocs

Email sending domain

Activate email, verify a sending domain with DNS records, and send your first email through the API or SMTP.

To send email from your app (receipts, password resets, notifications) you activate the email service for the project, verify a domain you own, and create an API key. The same key works for the REST API and for SMTP.

Open your project and choose Email in the sidebar.

Activate the email service

Set up email sending

Open the activation dialog

On Set up email sending, click Activate email service.

Choose a plan

The dialog shows your Wallet balance and the plans with their monthly price. Pick a billing period (1 mo, 3 mo, 6 mo or 1 yr; longer periods show a discount) and select a plan.

The Activate email service dialog

Review

The Review step lists the billing period, price per month, start and expiry dates, Wallet after purchase, and what the plan includes: emails, contacts, domains, templates, webhooks, broadcasts, send rate and what happens over quota.

A free plan charges nothing. A paid plan is charged to your wallet; if the balance is short, the dialog tells you how much is needed, and you can top up under Billing.

Activate

Click Activate email service. Provisioning starts right away and takes a moment.

Add and verify a sending domain

Go to Domains in the Email menu.

Add the domain

Click Add domain, type the domain and click Add & get DNS records.

Use a subdomain such as send.yourdomain.com or mail.yourdomain.com. That keeps the root domain free for your website and your existing mailbox, and keeps the sending reputation separate.

Publish the DNS records

Click Show DNS setup. The records are grouped in steps, and each record has a Host and a Value with a copy button:

  1. Verify ownership: a TXT record.
  2. SPF: a TXT record.
  3. DKIM: CNAME records. These keys are issued after ownership is proven, so press Verify once after step 1 and they appear.
  4. DMARC: a TXT record on _dmarc.

Copy each record into your DNS provider. If you bought the domain on Helipod, add them under Domains → My Domains → DNS Records (see Buy a domain).

Verify

Wait a few minutes for DNS to propagate, then click Verify. Each step changes to Done when its record is found, and the domain status becomes Verified. DKIM can take longer; propagation can take up to 72 hours in the worst case.

Custom MAIL FROM

When the domain has a custom MAIL FROM, a Custom MAIL FROM step lists an MX and a TXT record. Publish them so bounces and complaints route through your domain, then press Verify again.

A sample of what you publish for send.yourdomain.com (copy the exact hosts and values from the dashboard, they are unique to your domain):

TypeHostValue
TXTthe ownership host shownthe ownership token
TXTsend.yourdomain.comv=spf1 include:... ~all
CNAME<selector>._domainkey.send.yourdomain.comthe DKIM target shown
TXT_dmarc.send.yourdomain.comv=DMARC1; p=none

In Helipod DNS (and most registrars) the Name field is relative to your root domain. For the host _dmarc.send.yourdomain.com, enter _dmarc.send.

Create an API key

Go to API & webhooks. Under API keys, type a name (for example Production or CI) and click Create key. The key starts with hel_ and is shown once: copy it and store it as a secret, for example HELIPOD_EMAIL_KEY.

On the same page, Webhooks sends delivery, bounce and open events to an HTTPS endpoint of yours, signed with Helipod-Signature.

Send a test

Go to Test send. Choose the From address on your verified domain, add a To address, a Subject and a body, and click Send test. The Last send panel shows the delivery status, and Open in Logs shows the full event history. Test sends count toward your quota.

Send from your app

POST https://mail.helipod.io/api/email/send with the key as a bearer token. The from address must be on a verified domain of the project.

curl -X POST https://mail.helipod.io/api/email/send \
  -H "Authorization: Bearer $HELIPOD_EMAIL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <[email protected]>",
    "to": ["[email protected]"],
    "subject": "Your receipt for order {{orderId}}",
    "html": "<p>Hi {{name}}, thanks for order <b>{{orderId}}</b>.</p>",
    "text": "Hi {{name}}, thanks for order {{orderId}}.",
    "variables": { "name": "Ana", "orderId": "A-1042" }
  }'

The API answers 202 Accepted with an email id; delivery happens in the background. Send both html and text when you can, it improves deliverability.

Send over SMTP

For WordPress, Laravel, PHPMailer, Nodemailer or any app that speaks SMTP, use the values in the SMTP panel of API & webhooks:

SettingValue
Hostsmtp.helipod.io
Port587 with STARTTLS (recommended), or 465 with SSL/TLS
Usernameapikey (any value works; the key identifies the project)
Passwordyour API key (hel_...)
From addressan address on a verified domain

SMTP uses the same quota, checks, logs and webhooks as the API.

Next steps

On this page