SMTP by Zapier sends a message through any SMTP server you give it, so Zaps can send from your own domain through Postwing instead of a shared Zapier address. It has one action, Send Email, and one quirk worth knowing before you start: it cannot use port 465.
| Setting | Value |
|---|---|
| SMTP host | smtp.postwing.app |
| Port | 587 |
| Encryption | STARTTLS (the connection is upgraded to TLS before login) |
| Username | The login of an SMTP token for your domain |
| Password | The password of that token — shown once, when the token is created |
Add an action step, choose SMTP by Zapier and the Send Email event, then create a new connection:
| Field | Value |
|---|---|
| Host | smtp.postwing.app |
| Username | The login of an SMTP token for your domain |
| Password | That token's password |
| Use TLS | Yes |
| Port | 587 |
| From Email | noreply@your-domain.com — on your verified domain |
465 is. Use TLS: Yes with port 587 is the only encrypted combination that works here. | Field | Value |
|---|---|
| From Name | Your company or product name |
| From Email | noreply@your-domain.com |
| To | Mapped from the trigger, e.g. the customer's email |
| Subject | Text, with mapped fields if you like |
| Body | The plain-text version |
| HTML Body | The HTML version, if you send one |
| Reply To | Where replies should go — the place for a visitor's own address |
From Email is what DKIM, SPF and DMARC are checked against. An address on any other domain is refused by the relay, and would fail DMARC at the recipient even if it were not.
Map your own address into To and test the step. A failure shows the SMTP server's own reply, which tells you whether the port, the encryption or the credentials are wrong.
On a paid Zapier plan you can call the REST API instead. Add Webhooks by Zapier with the POST event and set:
| Field | Value |
|---|---|
| URL | https://api.postwing.app/external/send_email_simple/ |
| Payload Type | json |
| Data | recipient, subject, body, sender, auth__username, auth__password |
| Unflatten | Yes — turns auth__… into the nested object |
Zapier then sends this body:
{
"recipient": "customer@example.com",
"subject": "Your order is confirmed",
"body": "<p>Thanks! Your order ships tomorrow.</p>",
"sender": "Acme <noreply@your-domain.com>",
"auth": {
"username": "token-login@your-domain.com",
"password": "your-token-password"
}
}recipient takes one address; Data pairs cannot build the to array. sender must include a display name and be on your verified domain. The token's password lives in the step, so anyone who can edit the Zap can read it. Every other field is in the API reference.
| Error | Cause and fix |
|---|---|
| Connection fails on port 465 | SMTPS is not supported by Zapier. Use 587 with Use TLS: Yes. |
535 authentication failed | Wrong token login or password. |
550 from must be equal to … | From Email is not on your verified domain. |
503 5.5.1 RCPT | The mapped To field was empty for this run. |
| Email arrives as plain text | The markup is in Body instead of HTML Body. |
Webhook: HTTP 400 Invalid username or password | Wrong token in auth__username / auth__password. |
Webhook: HTTP 400, auth is required | Unflatten is off, so the keys arrived flat. Set it to Yes. |
Webhook: HTTP 400 Required format: full name <username@domain.ltd> | Add a display name to sender. |
Zapier connects either unencrypted or with STARTTLS; implicit TLS on port 465 (SMTPS) is not supported. Use port 587 with Use TLS set to Yes.
With Yes, Zapier upgrades the connection with STARTTLS before sending the password. Leave it on: without it the token's password crosses the network unencrypted.
The Body field is the plain-text version. Put your markup in HTML Body and keep a short plain-text Body as the fallback — the message then goes out with both parts.
No. The From Email must be on your verified domain — that is the domain your DKIM and SPF cover, and the relay refuses any other. Map the visitor's address to Reply To instead.
Yes, on a paid Zapier plan — Webhooks by Zapier is not available on the Free plan. A POST to the send API gets you saved templates and a response with the message id every delivery webhook reports.
Name the keys auth__username and auth__password and set Unflatten to Yes. Zapier turns the double underscore into a nested object.