For the software you didn't write.
A host, a port and a password is all some software will ever give you. Point it at Sendwax and it sends through your verified domains, with the same delivery reporting, suppression handling and unsubscribe management as the API.
If you are writing the code, use the API instead. It gives you a message id per recipient and an error you can read, rather than a three-digit reply code your framework swallowed.
Setting up your client
The values are the same everywhere; what differs is where the settings live and the one thing that goes wrong with each one.
WordPress
- WP Mail SMTP — The most installed SMTP plugin on WordPress. Takes about two minutes.
- FluentSMTP — Free, open source, and happy to hold several connections at once.
- Post SMTP — Keeps its own email log and can alert you when a send fails.
- Easy WP SMTP — The plainest of them. Nothing to configure beyond the connection.
- Gravity SMTP — From the Gravity Forms team, and the right choice if your forms are theirs.
- WooCommerce — Order confirmations, shipping notices, password resets. The ones customers notice.
Servers and frameworks
- Postfix — Everything on the box — cron, monitoring, mail(1) — goes out properly signed.
- Laravel — Two lines of .env. Or use our package and skip SMTP entirely.
- Python — The standard library, no dependencies.
- Nodemailer — The usual way a Node app sends mail.
The settings
| Host | smtp.sendwax.com |
|---|---|
| Port | 587, with STARTTLS — required, not optional |
| Username | sendwax |
| Password | an API key from API keys in the dashboard |
| From | an address you have approved under Senders |
Use a send-only key, and the dashboard will steer you to one. It can send mail and do nothing else, so a key sitting in a plugin's settings screen on shared hosting cannot read your contacts or your activity log.
WordPress
With WP Mail SMTP, FluentSMTP, Post SMTP, or any plugin that takes a host and a password — choose Other SMTP and fill in:
| SMTP Host | smtp.sendwax.com |
|---|---|
| Encryption | TLS (STARTTLS) |
| SMTP Port | 587 |
| Authentication | On |
| Username | sendwax |
| Password | your API key |
| From Email | an approved sender |
Postfix as a relayhost
relayhost = [smtp.sendwax.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:sendwax:esk_send_your_key
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
What has to be true for a message to go
The From address must be one you have approved under Senders, on a domain you
have verified. Owning example.com is not by itself permission to send as
ceo@example.com — that second step is what stops a leaked key from sending
fully-signed mail as anyone in your company.
Everything else behaves exactly as it does through the API: a suppressed address is not mailed, a marketing opt-out is honored, your allowance is counted, and every message appears in the activity log with its own id.
Two headers you can set
| X-Sendwax-Type: marketing | Marks the message as marketing, so an opt-out applies and unsubscribe headers are attached. Transactional is the default, and this header can only raise it, never lower it. |
|---|---|
| X-Sendwax-Tag: receipts | A label for filtering the activity log. Repeat it or comma-separate; ten maximum. |
Both are removed before the message is sent. So is any other X-Sendwax-
header, which is simply ignored — a typo in a tag name will never bounce a password
reset.
What we rebuild, and what that loses
Your message is not relayed byte for byte. We read it, take what matters, and build a new one that our DKIM signature covers. That is what makes the reporting, the suppression and the one-click unsubscribe work, and it has costs worth knowing before you point production at it.
- Inline images lose their placement. An image referenced with
cid:arrives as an ordinary attachment and the reference in the HTML dangles. If your mail relies on embedded images, use the API or hosted image URLs. - Recipients come from the envelope, never the headers.
To:andCc:visibility is not preserved: each recipient gets their own copy addressed to them alone. ABcc:header is read only to be discarded. - Threading is not preserved.
In-Reply-ToandReferencesare dropped, so a reply will not thread in the recipient's client. - Your
Message-IDandDateare replaced. The Message-ID is used while we have it, to recognize the same message offered twice within an hour, and then a fresh one is minted. - Calendar invitations arrive as attachments, not as invitations the recipient's client offers to accept.
- Your own
DKIM-Signature,Receivedchain andReturn-Pathare dropped. - Scheduling is not available over SMTP. Send at the time you want it sent, or use the API.
Limits
| Message size | 10 MB |
|---|---|
| Attachments | 25 parts, 7 MB decoded in total |
| Recipients per message | 100 |
| Send rate | 300 per minute, shared with your API key's rate |
Reading a refusal
A 4xx means try again — a rate limit, a daily allowance, something
temporary on our side. Your mail server will hold the message and retry, which is the
right thing.
A 5xx means the message will never be accepted as sent. The two you are
most likely to meet:
550 5.7.1 Sender ceo@example.com rejected: your account has not added that domain
550 5.7.1 ceo@example.com is not an approved sender for your account; add it under Senders
Both are fixed in the dashboard in under a minute, and neither is about the message.
A 535 on login means the key is wrong, revoked, or SMTP is not enabled for
the account. We deliberately do not say which — telling you would tell anyone guessing
which guess was closer.
Availability
SMTP is a Pro feature and has to be switched on for your account. Ask us and we will turn it on.