Send Email (SMTP)

action_send_email · action · Email · Available · v2.1.0

Description

Send an email via SMTP. Compatible with Gmail, SendGrid, Mailgun, Postmark, IONOS, Aruba SMTP. Pick a preconfigured account from Settings → Email Accounts, or fill the SMTP fields below. Supports CC, BCC, reply-to, threading (In-Reply-To), priority, custom headers and inline images (CID).

⚙️ Configuration parameters

Fields shown in the editor when configuring the node. Generated directly from the NodeDefconfigFields.

FieldTypeRequiredDefaultDescription
systemAccountId
Account email (Settings → Email Accounts)
email-account-pickernoAccount SMTP preconfigurato dal tab "Email Accounts" di Settings. Credentials cifrate, share tra tutti i workflow del tenant. Se selezionato, i 5 campi SMTP sotto vengono IGNORATI. Raccomandato vs configurazione manuale.
host
SMTP host (override)
stringno
smtp.gmail.com / smtp.sendgrid.net / smtp.example.com
Hostname del server SMTP. Tipici: smtp.gmail.com:465, smtp.sendgrid.net:587, smtp.office365.com:587, smtp-mail.outlook.com:587. Solo se NON usi un account preconfigurato.
port
SMTP port
numberno465465 = SMTPS (TLS implicito, default). 587 = STARTTLS (upgrade da plain). 25 = plain (sconsigliato, spesso bloccato dai provider cloud). Verifica nella doc del tuo provider quale supporta.
security
Security
enum
tlsstarttlsplain
notlstls = TLS immediato all'handshake (port 465, default). starttls = upgrade da connessione plain via comando STARTTLS (port 587). plain = nessuna cifratura (port 25, INSICURO — solo per server locali in rete fidata).
username
SMTP username
stringno
[email protected] / apikey (SendGrid) / postmaster (Mailgun)
Utente per l'autenticazione SMTP. Per Gmail: indirizzo completo. Per SendGrid: stringa letterale "apikey" (poi password = API key). Per Postmark: lo stesso token serve come user + password.
password
SMTP password / API key
string (encrypted)noPassword account o API key del provider. NON la metti qui in chiaro: usa {{secrets.SMTP_PASSWORD}} con valore configurato in Credentials. Gmail richiede App Password (no password account dal 2022 per la sicurezza).
from
From (override account)
stringno
Mario Rossi <[email protected]>
Mittente visibile al destinatario. Lascia vuoto per usare il from dell'account selezionato. Formato: "Nome <email@dominio>" oppure solo email. ATTENZIONE: il dominio in "from" deve essere autorizzato dall'SMTP (SPF) — altrimenti rifiutato o spam.
replyTo
Reply-To
stringno
[email protected]
Indirizzo a cui il destinatario risponderà cliccando "Rispondi". Diverso da From — utile per inviare da un service account (noreply@) e ricevere risposte su una casella reale (support@, info@).
to
To (separati da virgola)
stringyes
[email protected], [email protected], {{$node.trigger.json.email}}
Destinatari principali (campo To). Separati da virgola. Supporta espressioni {{$node.X.json.field}} per destinatari dinamici. Max 50 destinatari per messaggio (limite Gmail/Outlook anti-spam).
cc
CC (separati da virgola)
stringno
[email protected]
Destinatari in copia carbone (visibili a tutti). Tipicamente per "knowledge sharing" o approvazione. NON usare per liste grandi — preferisci BCC per privacy.
bcc
BCC (separati da virgola)
stringno
[email protected]
Destinatari in copia nascosta (invisibili agli altri destinatari). Usa per archiviazione/audit o mailing list. NIENTE leak di indirizzi tra destinatari (GDPR-safe).
inReplyTo
In-Reply-To (Message-ID originale)
stringno
<[email protected]>
Per rispondere ad un'email esistente. Mette il messaggio nello stesso thread per il destinatario (in Gmail compare nella stessa conversazione). MANTIENI le parentesi angolari < >. Esempio: <[email protected]>.
references
References (Message-ID separati da spazio)
stringno
<[email protected]> <[email protected]>
Catena cronologica di Message-ID precedenti del thread. Tipicamente: il References originale + spazio + il Message-ID a cui rispondi. Mantiene la conversazione intera nei client che supportano threading (Gmail/Outlook/Thunderbird).
subject
Subject
stringyes
Conferma ordine #{{input.orderId}}
Oggetto del messaggio. Supporta espressioni {{...}}. Mantieni 30-60 caratteri per leggibilità su mobile. EVITA: ALL CAPS, troppi punti esclamativi, parole spam-trigger (gratis/win/click). Limite 998 char (RFC).
bodyType
Body type
enum
texthtmlmarkdown
yeshtmltext = plain text puro (massima deliverability, nessuna formattazione). html = formattato (link/grassetto/colori, default). markdown = scrivi in markdown, l'engine converte in HTML server-side (per template AI-generated).
body
Body
rich-textyes
Ciao {{input.name}}, il tuo ordine #{{input.orderId}} è in elaborazione…
Editor visuale (grassetto/corsivo/liste/link/img). Switcha "HTML" nella barra per editare il sorgente HTML. Supporta espressioni {{...}} per contenuto dinamico. Se Body type = "text", il contenuto viene inviato come plain text strippato.
priority
Priorità
enum
normalhighlow
nonormalhigh = X-Priority: 1 + Importance: High (icona "!" in alcuni client). low = X-Priority: 5 + Importance: Low. normal = nessuno header (default). NON è un canale prioritario reale — i server SMTP non accelerano per priorità.
headersJson
Header personalizzati
key-valuenoHeader custom da aggiungere al messaggio. Esempi tipici: X-Mailer=FlowForge (identifica origine), List-Unsubscribe=<mailto:[email protected]> (CAN-SPAM + Gmail bulk-sender 2026 obbligatorio), Auto-Submitted=auto-generated (RFC 3834 per bot reply).
deliverabilityCheck
Pre-flight deliverability (SPF/DKIM/DMARC)
enum
offwarnstrict
nooffVerifica i record DNS del dominio mittente PRIMA di inviare. Senza autenticazione DKIM/SPF, ~60% delle email finisce in spam (Gmail/Outlook bulk-sender 2026). • off (default): nessun check, back-compat. • warn: esegue check, logga warning + lo include nei result.warnings, MA invia comunque. • strict: esegue check, FALLISCE il nodo se SPF/DKIM/DMARC mancanti. CONSIGLIATO per cold outreach + workflow lead-gen dove deliverability è critica. Cache 1h sul fromAddress → costo DNS ~0 in produzione. Output del nodo include sempre il report quando il check è attivo (visibile nel RunInspector).
attachmentsJson
Allegati
attachmentsnoFile allegati. 3 modalità: upload (base64 inline, max 10MB consigliato), URL pubblico (l'engine scarica e allega), path filesystem server. File > 10MB → preferisci URL per evitare timeout SMTP.
inlineImagesJson
Immagini inline (CID)
attachmentsnoImmagini referenziate nel body HTML con src="cid:<nome>". Esempio: carichi qui un file "logo.png", poi nel body usi <img src="cid:logo.png" />. A differenza degli allegati normali NON appaiono come file scaricabili ma sono renderizzate dentro il messaggio (loghi email branded, signature, banner promo).
dkimDomain
DKIM domain (opzionale)
stringno
example.com
Se valorizzato: firma il messaggio con DKIM (header DKIM-Signature). Devi anche compilare selector + private key sotto. Lascia VUOTO se il provider SMTP firma per te (SendGrid, Postmark, Amazon SES, Mailgun, Gmail con DKIM key pubblicata). Doppia firma = quasi sempre inutile.
dkimSelector
DKIM selector
stringnodefault
default / s1 / mail / dkim2024
Stringa "label" del record DNS DKIM. Deve corrispondere al record DNS pubblico <selector>._domainkey.<domain> TXT. Default convenzionale è "default" ma molti usano "s1", "mail", "dkim2024". Verifica con `dig TXT default._domainkey.tuodominio.com`.
dkimPrivateKey
DKIM private key (PEM)
string (encrypted)noChiave privata RSA in formato PEM. Tipicamente -----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----. La chiave PUBBLICA corrispondente deve essere pubblicata in <selector>._domainkey.<domain> TXT del DNS. Usa {{secrets.DKIM_PRIVATE_KEY}} per non leak in plain text.

💡 Configuration example

JSON snippet of the node as it appears in the workflow. Values are derived fromdefaultValue and from required parameters.

{
  "id": "node-action_send_email-1",
  "defId": "action_send_email",
  "label": "Send Email (SMTP)",
  "config": {
    "port": 465,
    "security": "tls",
    "to": "[email protected], [email protected], {{$node.trigger.json.email}}",
    "subject": "Conferma ordine #{{input.orderId}}",
    "bodyType": "html",
    "body": "Ciao {{input.name}}, il tuo ordine #{{input.orderId}} è in elaborazione…",
    "priority": "normal",
    "deliverabilityCheck": "off",
    "dkimSelector": "default"
  }
}

🔒 Security notes

Per-tenant encrypted SMTP credentials. TLS mandatory (port 465 SMTPS or 587 STARTTLS). Marketing email (non-transactional) requires explicit GDPR art.6.1.a opt-in + List-Unsubscribe header.

🔗 Related nodes in the same category

Ready to use Send Email (SMTP)?

Available now on all FlowForge plans. Try it free without a credit card.

Start freeBrowse all nodes