Email — HTTP API vs SMTP relay
HTTP vs SMTP comparison
Email — HTTP API vs SMTP relay
Start here: E-mail — documentation hub.
Routee Transactional Email supports two send paths. Both use the same Connect Application Id and Application Secret, write to the same delivery logs, and require a verified domain and authorized sender.
Comparison
| HTTP API | SMTP relay | |
|---|---|---|
| Best for | Modern apps, microservices, serverless, JSON-native stacks | Existing MTAs, CMS plugins (WordPress, Laravel), legacy mail configs |
| Connect to | POST https://connect.routee.net/transactional-email | smtp10.amdtelecom.net |
| Auth per request | OAuth Bearer token (scope=transactional_email) | SMTP AUTH — Application Id = username, Application Secret = password |
| Message format | JSON (html, text, attachments, headers) | Standard MIME (RFC 5322) |
| Immediate response | HTTP 200 + trackingId | SMTP 250 acceptance |
| Callbacks on send | callback.statusCallback, callback.eventCallback (HTTP API only) | Not configured in MIME — use tracking API or portal logs |
| Scheduling / TTL | scheduledDate, ttl, maxAttempts in JSON body | Depends on client; Routee accepts standard SMTP submission |
| Billing flag | isSingleChannel: true required on every HTTP send | N/A (account resolved at SMTP auth) |
When to choose HTTP
- You already use Connect OAuth for SMS, Viber, or other Routee APIs.
- You want structured JSON, attachments as base64, custom headers, and DSN options in one request.
- You need delivery or open/click webhooks configured at send time.
- You run serverless or API-first backends without an outbound SMTP client.
Guide: Transactional Email API v2 — overview
When to choose SMTP
- You already have Postfix, Exim, Sendmail, or a CMS mail plugin configured for SMTP relay.
- You migrate from another ESP without rewriting the send layer.
- Your ops team standardizes on port 25/587 relay rather than REST.
Guide: Transactional Email — SMTP relay
TLS summary (SMTP only)
| Port | Mode |
|---|---|
| 25 | Plain connect → STARTTLS → AUTH |
| 587 | Implicit TLS (SSL from first byte) → AUTH — do not use STARTTLS on cleartext 587 |
Tracking (both paths)
| Action | HTTP API |
|---|---|
| Search logs | POST /email/tracking |
| Full timeline | GET /email/tracking/single/{trackingId} |
| Portal | Email → Logs on go.routee.net |
Allow 1–2 minutes after send before log rows appear.
Guide: Email tracking, statuses & callbacks
Prerequisites (both paths)
Complete before first send — see Domain & authorized senders:
- Active transactional email subscription
- Verified sending domain (SPF + DKIM)
- Authorized sender for your
Fromaddress - Connect application with
transactional_emailscope
Related
- Email resources overview
- Send your first transactional email (tutorial)
- Send transactional email via SMTP (tutorial)

