Send email from n8n
One HTTP Request node, a header credential you can reuse, and mail that goes out under your own domain instead of an SMTP account you borrowed.
Updated September 09, 2026
n8n has a Send Email node that speaks SMTP, and it works — but it means putting SMTP credentials in a credential store, and it gives you nothing back except "the server accepted it". No message id, no delivery event, no way to answer "did that reach them?" three days later.
The HTTP Request node takes about the same effort and gives you both.
Make a credential first
Create a Header Auth credential rather than pasting the key into the node:
- Name:
Authorization - Value:
Bearer pa_live_your_key_here
Doing it this way keeps the key out of the workflow JSON, which matters the moment you export a workflow or commit it to a repository.
The node
Add an HTTP Request node:
- Method:
POST - URL:
https://pigeonatlas.com/v1/emails - Authentication:
Generic Credential Type→Header Auth→ the credential you just made - Send Body: on, Body Content Type:
JSON
Then, using Specify Body: Using Fields Below:
| Name | Value |
|---|---|
from |
Your Company <hello@mail.yourcompany.com> |
to |
{{ $json.email }} |
subject |
{{ $json.subject }} |
html |
{{ $json.body }} |
Two things worth knowing
Turn on Always Output Data if the next node needs to run regardless. Otherwise a rejected send stops the branch silently, and in a scheduled workflow nobody notices for a week.
A 4xx from us is a real answer, not a network failure. 422 means the payload was wrong — an unverified domain, or a to that is not an address. 402 means the account is out of quota. Retrying either one changes nothing, so leave Retry On Fail off and read the body instead: it says which field and why.
Delivery events back into n8n
Add a Webhook node, take its production URL, and register it under Webhooks in Pigeon Atlas. Deliveries, bounces and complaints then arrive as workflow triggers, signed so you can tell they came from us. That is the piece SMTP cannot give you at all — a bounce over SMTP goes to a mailbox, not to your automation.
Before it works
Add your sending domain in Pigeon Atlas and publish the three DNS records it hands you. Until all three resolve the domain cannot send, which is what stops anyone else sending as you.
The API reference has the full payload, and the webhook guide covers verifying the signature.