Skip to main content

Get started

Step 1: Set up your sending domain

Before you can send, you need to add a sending domain. Head over to our domains page for instructions on how to set up your domain.

Step 2: Create your first channel

Channels allow you to segregate your mail. Some common ways you might want to do this:
  • By environment (e.g., production, staging, etc.)
  • By the type of mail you’re sending (e.g., newsletters, transactional, etc.)
  • By customer (e.g., customer abc)
If something goes awry with your sending (e.g., high bounce rate, high spam, etc.), we’ll only suspend the mail type (transactional or broadcast) on that channel.

Step 3: Create an API credential or SMTP user

Create a new API credential or SMTP user. If you associate your API credential with a channel, you don’t need to pass in the X-Helo-Channel-Id header shown below. SMTP users are required to be associated with a channel, which will be used during sending automatically.

Step 4: Send your first email

Option A: Send via API
curl --location 'https://api.helohq.com/send/transactional' \
--header 'X-Helo-Channel-Id: CHANNEL_ID' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data-raw '{
  "from": {
    "email": "test@YOURDOMAIN.COM",
    "name": "From Name"
  },
  "to": [
    {
      "email": "recipient@example.com",
      "name": "Recipient Name"
    }
  ],
  "subject": "Test Message",
  "html": "<html><body><h1>Test message HTML</h1><p>Test message paragraph</p></body></html>",
  "text": "Test message text"
}'
Option B: Send via SMTP For testing with SMTP, we recommend swaks. Below is an example using swaks:
command-line
swaks \
    --server smtp.helohq.com:25 \
    --from test@YOURDOMAIN.com \
    --to recipient@example.com \
    --body "<html><body><h1>Test message HTML</h1><p>Test message paragraph</p></body></html>" \
    --auth LOGIN \
    --auth-user YOUR_SMTP_USER_ID \
    --auth-password YOUR_SMTP_PASSWORD \
    --add-header "X-Helo-TrackLinks: true" \
    --add-header "X-Helo-TrackOpens: true" \
    --add-header "Content-Type: text/html"
Need help? Join our discord!