SMTP Email
Send transactional emails through any SMTP-compatible relay server. Each synced row triggers an individual email to the recipient, making it ideal for personalized notifications, welcome sequences, and data-driven email campaigns.
Prerequisites
- Access to an SMTP server (e.g., Amazon SES, Mailgun, Postmark, or your own mail server)
- SMTP credentials: username and password with send permissions
- The SMTP server hostname and port number
- A verified sender email address (required by most SMTP providers)
Authentication
SMTP Email uses SMTP Credentials authentication (PLAIN auth over TLS).
- Obtain SMTP credentials from your email provider
- In Zeotap, enter your Username (often the sender email address)
- Enter your Password (SMTP password or app-specific password)
Provider-Specific Notes
- Amazon SES: Use IAM SMTP credentials (not your AWS access keys). Generate them in the SES console under SMTP Settings.
- Gmail / Google Workspace: Use an App Password — regular passwords will not work with 2FA enabled.
- Mailgun: Find SMTP credentials under Sending > Domain Settings > SMTP Credentials.
- Postmark: Use your Server API Token as both username and password.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| SMTP Host | Text | Yes | Hostname of the SMTP server (e.g., smtp.example.com). |
| SMTP Port | Number | Yes | Server port. Use 587 with STARTTLS enabled (recommended), 465 for implicit TLS (SMTPS — automatically upgraded), or 25 for unencrypted relays. |
| From Email | Text | Yes | Sender email address shown in the From header. Must be verified with your provider. |
| From Name | Text | No | Display name for the sender (e.g., “My Company”). |
| Reply-To | Text | No | Reply-To address. Defaults to the From Email if not set. |
| Use STARTTLS | Toggle | No | Enable STARTTLS encryption. Recommended when using port 587. |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Email Subject | Text | Yes | Subject line for outgoing emails. Supports {{field_name}} template placeholders. |
| HTML Body | Textarea | No | HTML email body with {{field_name}} placeholders. If omitted, the plain-text body is used. |
| Plain Text Body | Textarea | No | Plain-text email body with {{field_name}} placeholders. Used as fallback when HTML body is empty. |
Template Placeholders
Both the subject and body fields support {{field_name}} placeholders that are replaced with values from each synced row. For example:
- Subject:
Welcome, {{first_name}}! - Body:
<p>Hi {{first_name}} {{last_name}}, your account {{account_id}} is ready.</p>
Any mapped field can be used as a placeholder. Unknown placeholders are replaced with an empty string.
Supported Operations
Sync Modes
| Mode | Supported |
|---|---|
| Insert | Yes |
| Upsert | — |
| Update | — |
| Mirror | — |
Audience Sync Modes
| Mode | Supported |
|---|---|
| Add | Yes |
| Remove | — |
| Mirror | — |
| Upsert | — |
Features
- Field Mapping: Yes
- Schema Introspection: No
Required Mapping Fields
| Field | Description |
|---|---|
| Recipient email address |
Default Destination Fields
email, first_name, last_name, name
How It Works
- Zeotap establishes a single SMTP connection per batch to your configured server
- For each row in the sync, an individual email is composed using the subject and body templates
- Template placeholders (
{{field_name}}) are replaced with the row’s mapped field values - The email is sent via the SMTP MAIL FROM / RCPT TO / DATA sequence
- The connection is reused across all rows in the batch for efficiency
- Failed sends are tracked per-row with the recipient address for troubleshooting
Batch Behavior
- Each row produces exactly one email — there is no batching or aggregation of recipients
- A single SMTP connection is reused for all emails in a batch
- Errors on individual emails do not stop the rest of the batch
Rate Limits
Rate limits depend on your SMTP provider:
| Provider | Typical Limit |
|---|---|
| Amazon SES | 1–200 emails/sec (varies by account) |
| Gmail / Workspace | 500/day (free) or 2,000/day (Workspace) |
| Mailgun | 300 emails/min (free tier) |
| Postmark | 500 emails/day (free) |
| SendGrid SMTP | Based on plan tier |
Configure your Zeotap sync schedule to stay within your provider’s limits.
Best Practices
- Always use STARTTLS on port 587 for secure email delivery
- Verify your sender domain with SPF, DKIM, and DMARC records to improve deliverability
- Use app-specific passwords instead of your main account password when available
- Test with a small audience before sending to your full list
- Include an unsubscribe link in your email body to comply with CAN-SPAM and GDPR
- Monitor bounce rates — high bounce rates can damage your sender reputation
Troubleshooting
Connection refused or timed out
Verify the SMTP host and port are correct. Common ports: 587 (STARTTLS), 465 (implicit TLS), 25 (unencrypted). Some networks block port 25.
Authentication failed
Double-check your SMTP username and password. For Gmail, use an App Password. For Amazon SES, use SMTP-specific IAM credentials, not your AWS access key.
Emails not arriving
Check your provider’s sending logs for bounces or rejections. Verify the sender address is authorized in your SMTP provider. Check the recipient’s spam folder.
TLS handshake error
Enable the Use STARTTLS toggle if your server requires encryption on port 587. Port 465 is handled automatically — the connection upgrades to TLS before the SMTP greeting, so the STARTTLS toggle is ignored on that port.
Authentication refused without TLS
Zeotap refuses to send SMTP credentials over an unencrypted channel. Enable Use STARTTLS on port 587 or switch to port 465 (SMTPS). Plaintext PLAIN authentication is only permitted against a localhost relay.
Template placeholders not replaced
Ensure field names in {{placeholders}} match the mapped destination field names exactly (case-sensitive). Check that the fields are included in your field mapping configuration.
Rate limit exceeded
Your SMTP provider is rejecting emails due to sending too fast. Reduce your sync frequency or contact your provider to increase your sending quota.
Emails marked as spam
Configure SPF, DKIM, and DMARC records for your sending domain. Avoid spam trigger words in subject lines. Include a physical mailing address and unsubscribe link in the email body.