Everything you need to deliver high-converting emails
Learn how to configure audiences with our built-in spreadsheet editor, run automated background campaigns, track live email opens, and scale sending with SendBoost at $0.45 / 1,000.
Audience Sheet Editor
Upload CSVs and edit rows and columns directly inside an interactive sheet grid.
Smart Personalization
Universal variables supporting [-tag-], {{tag}}, {tag}, and [tag].
Background Auto Send
Queue bulk recipient lists and deliver in safe automated batches even offline.
Scheduled Dispatches
Schedule campaigns for exact future times with background cron processing.
Real-Time Open Tracking
Live open rates, timestamp logs, and recipient engagement metrics.
SendBoost ($0.45 / 1K)
Pay-as-you-go extra quota that unlocks bulk capacity without tier upgrades.
Audience Sheet Table Editor
UltyMailer comes with an interactive, Google Sheets-inspired spreadsheet table editor. Instead of plain text email lists, you can manage structured CSV contact data directly in your browser.
Key Sheet Capabilities
- ✓CSV & TXT Uploads: Auto-detects columns, headers, and separators.
- ✓Inline Cell Editing: Click any cell to update emails, names, companies, or custom metadata.
- ✓Dynamic Columns: Add or delete custom columns (e.g.
Role,City,DiscountCode). - ✓Automatic Deduplication: Cleans up duplicate email entries and validates formatting.
Smart Variable Personalization
Write your email template once and personalize it for thousands of leads. UltyMailer automatically normalizes any tag format and matches it against your audience table columns.
[-First Name-], {{firstname}}, and {first_name} all resolve to the same CSV column header.Background Auto Send Engine
The Auto Send engine is engineered for large recipient lists. Instead of requiring you to keep your browser tab open, Auto Send dispatches emails safely in staggered background batches that preserve domain reputation.
Runs Fully Offline
Queue 5,000 or 50,000 recipients, click start, and shut down your computer. Our cloud worker dispatches each batch on time.
Plan Limit Enforcement
Batch sizes and intervals automatically match your tier (Growth, Pro, Agency) to prevent sender rate-limiting.
Pause & Resume Control
Monitor live campaign progress and pause, cancel, or re-adjust settings mid-flight without dropping deliverability.
Scheduled Dispatches
Set your target date, time, and timezone. The scheduler locks in your campaign draft and triggers delivery automatically at the peak open-rate hour for your target audience. Background cron workers process queues autonomously without needing your browser tab open.
Real-Time Open Tracking & Analytics
Gain clear visibility into your campaign performance with automated read receipts. Know the instant your emails are opened, track recipient interactions, and view engagement rates live in your dashboard.
Live Engagement KPIs
Track Unique Opens, Total Reads, and Open Percentages across every campaign and verified sender identity.
High Deliverability
Built to protect domain reputation and ensure high inbox placement across Gmail, Outlook, Yahoo, and business inboxes.
Verified Senders & Custom Domain Routing
Connect and verify multiple sender identities with custom display names (e.g. Alex <alex@yourdomain.com>). UltyMailer automatically handles email routing, sender reputation isolation, and bounce suppression without requiring manual SMTP server setup.
Zero DNS Hassle: On supported plans, UltyMailer manages reverse DNS, outbound IP pools, and envelope headers out of the box so you can start delivering campaigns immediately.
Numbered Campaigns & Reusable Library
Keep your outbound efforts structured with automatic sequential naming (Campaign #1, Campaign #2...). Save successful HTML and text copy directly to your template library for quick reuse across one-off sends and Auto-Send background queues.
Plan Limits, Safe Batching & Run Cooldowns
To safeguard outbound IP reputation and guarantee high inbox placement across major providers (Gmail, Microsoft, Yahoo), each plan includes clear volume parameters:
Run Recipient Caps
The maximum number of contacts in a single instant dispatch (e.g. 10 on Free, 1,000 on Growth, unlimited on Pro & Agency).
Run Cooldown
A 3-minute cooldown between instant dispatches that prevents spam-filter tripwires and warms outbound pipelines safely.
Consumer Domain Gate
Sending to free domains (Gmail, Outlook, Yahoo, GMX) is reserved for Pro and Agency tiers to protect shared IP pools.
SendBoost On-Demand Sending ($0.45 / 1,000)
Exceeded your plan quota or launching a high-volume seasonal campaign? You don't have to upgrade your monthly tier. Purchase extra email credits anytime with SendBoost at an industry-leading rate of just $0.45 per 1,000 emails ($0.00045/email).
Works on All Plans — Never Expire
SendBoost credits stack directly on top of your plan and roll over indefinitely. Available on Free, Growth, Pro, and Agency.
REST API Quickstart (cURL, Node.js, Python, Go)
Integrate UltyMailer into your backend services and SaaS products using clean JSON over standard HTTPS.
Authentication
Pass your API secret key in the Authorization: Bearer sk_live_... header on every request.
cURL
curl -X POST https://api.ultymailer.com/v1/send \
-H "Authorization: Bearer sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"from": "Alex <alex@yourdomain.com>",
"to": ["user1@company.com", "user2@company.com"],
"subject": "Welcome to [-company-]!",
"html": "<p>Hi [-first_name-], your account is ready.</p>",
"track_opens": true
}'Node.js (Fetch)
const response = await fetch('https://api.ultymailer.com/v1/send', {
method: 'POST',
headers: {
'Authorization': 'Bearer sk_live_your_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({
from: 'Alex <alex@yourdomain.com>',
to: ['user1@company.com'],
subject: 'Welcome aboard!',
html: '<p>Hi there, welcome to our service.</p>',
track_opens: true,
}),
});
const data = await response.json();
console.log('Delivered:', data);Python (Requests)
import requests
url = "https://api.ultymailer.com/v1/send"
headers = {
"Authorization": "Bearer sk_live_your_key_here",
"Content-Type": "application/json"
}
payload = {
"from": "Alex <alex@yourdomain.com>",
"to": ["lead@company.com"],
"subject": "Quick follow-up",
"html": "<p>Hello, following up on our chat.</p>",
"track_opens": True
}
res = requests.post(url, json=payload, headers=headers)
print(res.status_code, res.json())Go (net/http)
package main
import (
"bytes"
"encoding/json"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]interface{}{
"from": "Alex <alex@yourdomain.com>",
"to": []string{"user@company.com"},
"subject": "Account verified",
"html": "<p>Welcome!</p>",
"track_opens": true,
})
req, _ := http.NewRequest("POST", "https://api.ultymailer.com/v1/send", bytes.NewBuffer(body))
req.Header.Set("Authorization", "Bearer sk_live_your_key_here")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err == nil {
defer resp.Body.Close()
}
}