Skip to content

Cookie preferences

We use cookies for our own analytics and to see how our campaigns perform. We never sell your data. Necessary cookies keep the site working and cannot be switched off. See our Cookie Policy for details.

Security, load balancing and remembering your cookie choice.

Show us which pages people read and how they find the site, so we can improve it (Google Analytics).

Show us which of our ad campaigns bring visitors to the site (Google Ads).

© 2026 The ThingsBoard Authors
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Send Email

Use this node to deliver an email prepared by a To Email transformation node — for example, sending an alert email when a device alarm is created, or emailing a daily summary report to an operations team.

  • Enabled (default) — use the platform-wide SMTP settings configured by the system administrator.
  • Disabled — use custom SMTP settings defined in this node, allowing different email nodes to use different SMTP servers.

When system settings are disabled, configure:

  • Protocol — smtp (default) or smtps (SMTP over SSL/TLS).
  • SMTP host — hostname or IP address of the SMTP server.
  • SMTP port — port number.
  • Timeout (ms) — socket read timeout. Default: 10000 (10 seconds).
  • Enable TLS — use STARTTLS to upgrade the connection after the initial handshake.
  • TLS version — TLS protocol version when TLS is enabled. Default: TLSv1.2.
  • Username / Password — SMTP authentication credentials. Leave empty for anonymous access.
  • Enable proxy — route SMTP traffic through a proxy server.
  • Proxy host / port / user / password — proxy connection details (authentication optional).

Controlled globally by the ACTORS_RULE_EXTERNAL_NODE_FORCE_ACK environment variable. When true, the incoming message is acknowledged immediately and the email send operation runs asynchronously, preventing processing timeouts for slow SMTP servers or large attachments.

  1. Verify that the message type is SEND_EMAIL. If not, route via Failure.
  2. If force acknowledgement is enabled, acknowledge the message immediately and create a copy.
  3. Send the email asynchronously using the system or custom SMTP configuration.
  4. Route the original message (or copy) via Success on delivery, or Failure on error.
Connection Condition
Success Email sent successfully.
Failure Message type is not SEND_EMAIL, incorrect SMTP configuration, timeout, or unexpected error.

Example 1 — Send alert email via system SMTP

Section titled “Example 1 — Send alert email via system SMTP”

Type: SEND_EMAIL (produced by To Email node).

Data:

{
"to": "alerts@company.com",
"subject": "High Temperature Alert",
"body": "<html><body><h2>Warehouse temperature has exceeded 30°C. Current: 32.5°C</h2></body></html>"
}
{
"useSystemSmtpSettings": true,
"smtpHost": "localhost",
"smtpPort": 25,
"smtpProtocol": "smtp",
"timeout": 10000,
"enableTls": false,
"tlsVersion": "TLSv1.2",
"enableProxy": false
}

Result: email delivered to alerts@company.com using system SMTP. Routes via Success.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "TbSendEmailNodeConfiguration",
"type": "object",
"required": ["useSystemSmtpSettings"],
"additionalProperties": false,
"properties": {
"useSystemSmtpSettings": { "type": "boolean" },
"smtpHost": { "type": "string" },
"smtpPort": { "type": "integer" },
"smtpProtocol": { "type": "string", "enum": ["smtp", "smtps"] },
"timeout": { "type": "integer" },
"enableTls": { "type": "boolean" },
"tlsVersion": { "type": "string" },
"enableProxy": { "type": "boolean" },
"proxyHost": { "type": "string" },
"proxyPort": { "type": "string" },
"proxyUser": { "type": "string" },
"proxyPassword": { "type": "string" },
"username": { "type": "string" },
"password": { "type": "string" }
}
}