Skip to main content

Email

Send an email from an action. Delivery is over SMTP — configure it with an smtp block, then set from, to (plus optional cc, bcc, reply_to), subject, and an html or text body.

actions:
- name: SendWelcome
email:
smtp:
server: smtp.example.com
port: 587
user: a|secret::smtp_user|
pass: a|secret::smtp_pass|
from: hello@example.com
to: a|body::email|
subject: Welcome
html: "<h1>Welcome aboard</h1>"

Email

FieldTypeDescription
aws_sesboolean (nullable)Send through AWS SES using the engine's AWS credentials instead of SMTP. Mutually exclusive with smtp in practice — set one or the other.
smtpEmailSmtp (nullable)SMTP server to send through. Omit when using aws_ses.
fromstringRequired. Sender address. Must be one the SMTP server or SES identity is allowed to send as.
reply_tostring (nullable)Address replies should go to, when it differs from from.
tostringRequired. Recipient. Comma-separate for several.
ccstring (nullable)Carbon copy recipients, comma-separated.
bccstring (nullable)Blind carbon copy recipients, comma-separated.
rowsstring (nullable)Batch mode. An interpolation ref resolving to a JSON array of row objects (e.g. a|Fired|). When set, one email is sent per row: each row's string fields to / subject /…
subjectstringRequired. Subject line. Interpolation applies.
headerstring (nullable)Extra raw headers to attach to the message.
htmlstring (nullable)HTML body. Send html, text, or both — both is the polite form, since a client that cannot render HTML falls back to the text part.
textstring (nullable)Plain-text body.
paramsArray<string> (nullable)Positional values substituted into the body, for templates that use placeholders rather than interpolation refs.
attachmentsArray<EmailAttachment> (nullable)Files to attach. Turns the message into a multipart/mixed — the html/text body stays the first part and each attachment follows. Example ↓
success_messagestring (nullable)
error_messagestring (nullable)

Field examples

attachments

Files to attach. Turns the message into a multipart/mixed — the html/text body stays the first part and each attachment follows.

Example

attachments:
- filename: signups.csv
content: a|BuildCsv::csv_b64| # base64 (see `b64_encode`)
content_type: text/csv

EmailSmtp

FieldTypeDescription
userstringRequired.
passstringRequired.
serverstringRequired.
portnumber (nullable)
tlsboolean (nullable)