Send email over SMTP

Point any app or tool that speaks SMTP at Zend and it sends over the same infrastructure as the Email API: your verified domains, SES-backed delivery, DKIM/SPF signing, tracking, suppression, and billing. SMTP is just a second front door onto the same send path.

Reach for it when you already have something that sends email over SMTP (a CMS like WordPress, a CRM, a helpdesk, a printer or appliance, or a legacy app) and you'd rather change SMTP settings than write code against the API.

Connection settings

SettingValue
Hostsmtp.tryzend.com
Port587 (STARTTLS, recommended) or 465 (implicit TLS)
EncryptionSTARTTLS on 587, implicit TLS on 465; TLS is required before login
Usernamezendsmtp (the literal word)
Passwordyour Zend API key, with the email:send scope

Note

The username is always the literal string zendsmtp, not your account email. Your API key goes in the password field.

Authentication

SMTP uses your existing API key, the same one you'd use for POST /email/send. Create a key with the email:send scope in the dashboard, then connect with zendsmtp as the username and the key as the password. Your key is only accepted over TLS, so your client must use STARTTLS (port 587) or a TLS connection (port 465); it never crosses the wire in the clear.

Sending

Set the From header to an address on a domain you have verified (see Sending domains). A From on an unverified domain is rejected, exactly as on the API. Everything else is a normal SMTP message: subject, an HTML and/or plain-text body, and attachments all work.

swaks \
  --server smtp.tryzend.com --port 587 -tls \
  --auth-user zendsmtp --auth-password "$ZEND_API_KEY" \
  --from "receipts@yourdomain.com" \
  --to "customer@example.com" \
  --header "Subject: Your receipt" \
  --body "Thanks for your order!"

With Nodemailer it's a few lines:

import nodemailer from "nodemailer";

const transport = nodemailer.createTransport({
  host: "smtp.tryzend.com",
  port: 587,
  auth: { user: "zendsmtp", pass: process.env.ZEND_API_KEY },
});

await transport.sendMail({
  from: "receipts@yourdomain.com",
  to: "customer@example.com",
  subject: "Your receipt",
  html: "<h1>Thanks for your order</h1>",
});

Multiple recipients

To, Cc, and Bcc all work. Each recipient is delivered and billed as its own message (the same as calling the API once per recipient), so every recipient appears separately in your Email history with its own delivery and bounce status.

The same send as the API

Every message you send over SMTP runs the exact path as POST /email/send:

  • Deliverability: DKIM/SPF signing and reputation-monitored SES delivery.
  • Tracking & suppression: deliveries, bounces, and complaints land in the same Email history, and the same per-domain suppression list protects your reputation.
  • Billing: sends draw on your email plan's monthly volume, then on the same shared credits as SMS and WhatsApp.

Note

SMTP is an alternate way to send. Sending domains, API keys, history, and metrics are all still managed from the dashboard and the Email API.