Output Ports
| Port | Trigger Condition | Description |
| success |
SMTP accepted the message |
The SMTP server accepted the email for delivery. Note: acceptance by the SMTP server does not guarantee delivery to the recipient's inbox — bounces and spam filtering happen post-acceptance. |
| error |
SMTP connection or send failure |
Triggered when the SMTP server refuses the connection, authentication fails, the server returns an error code, or a network timeout occurs. The error details are available in the output object. |
Input Fields Available in Expressions
| Field | Type | Description |
vars.* | any | Workflow variables from upstream nodes (e.g. vars.customer_name, vars.invoice_pdf_base64). |
input.* | any | Original workflow trigger payload. |
env.* | string | Environment configuration values such as env.SUPPORT_EMAIL or env.COMPANY_NAME. |
workflow.id | string | Unique execution ID for correlation and audit logging. |
now() / utcnow() | datetime | Current timestamp functions usable in subject lines and bodies. |
Output Data Schema
| Field | Type | Description |
sent | boolean | true when the SMTP server accepted the message. false on failure. |
message_id | string | The SMTP Message-ID header value assigned to the sent email. Useful for audit trails and delivery tracking correlation. |
recipients_accepted | array | List of email addresses accepted by the SMTP server for delivery. |
recipients_rejected | array | List of email addresses rejected by the SMTP server (e.g. invalid address format, relay denied). Usually empty for authenticated SMTP. |
send_time_ms | integer | Time in milliseconds from SMTP connection to server acknowledgment. |
error_code | string | SMTP error code if sending failed (e.g. 535 for authentication failure, 550 for mailbox unavailable). Empty on success. |
error_message | string | Human-readable SMTP error description. Empty on success. |
Example Output: Successful Send
{
"sent": true,
"message_id": "<20251114093211.8a2b3c4d@mail.bizfirst.io>",
"recipients_accepted": ["jane.smith@customer.com"],
"recipients_rejected": [],
"send_time_ms": 412,
"error_code": "",
"error_message": ""
}
Example Output: Authentication Failure
{
"sent": false,
"message_id": "",
"recipients_accepted": [],
"recipients_rejected": [],
"send_time_ms": 203,
"error_code": "535",
"error_message": "Authentication credentials invalid. Please verify the SMTP username and password in your credential configuration."
}
Example Output: Multi-Recipient Send
{
"sent": true,
"message_id": "<20251114103540.1e2f3g4h@mail.bizfirst.io>",
"recipients_accepted": [
"cfo@company.com",
"finance@company.com",
"ops@company.com"
],
"recipients_rejected": [],
"send_time_ms": 538,
"error_code": "",
"error_message": ""
}
Accessing output downstream: Use the node's output in downstream expressions. For example, if the node is named sendConfirmation:
{{ nodes.sendConfirmation.output.message_id }} — The sent message ID
{{ nodes.sendConfirmation.output.sent }} — Boolean success flag