---
title: "Send email and email senders - Workflow Suite"
description: "Send emails from a workflow through your own SMTP sender: set up a sender, write the email with Liquid, add attachments, and know the sending limits."
canonical: "https://docs.workflow-suite.app/send-email"
---

# Send email and email senders

The **Send email** step sends an email to a customer, your team or anyone else. Emails always go out through **your own sender**, so they come from your address and your mail service. There is no shared mail relay for workflow emails.

> [!NOTE]
> **Senders today: SMTP**
> You can connect any mail server or email service that offers SMTP. Sending from a Google or a Microsoft 365 mailbox is **not available yet**; the Email senders page shows those two as not available.

## Set up a sender

1. Open **Email senders** in the app menu.
2. Under **Add your first sender**, select **Add SMTP server**.
3. Under **Mail server**, enter **Host**, **Port** and **Encryption**: STARTTLS (port 587), SSL / TLS (port 465) or None.
4. Enter **Username** and **Password**. The password is stored encrypted. Many providers want an app password here, not your sign-in password. Leave the username empty for a relay that needs no login.
5. Under **Sender**, enter the **From address**. Your mail server must allow this login to send from it. **From name**, **Reply-To** and **Name in this app** are optional.
6. Save. Then open the sender and use **Send test email** to check it.

The first sender becomes the **default sender**. Every Send email step that does not choose one uses it.

The host must be a public mail server. Addresses inside private networks are refused.

## Add the step

1. Press **+** and pick **Send email**.
2. **Send from**: **Default sender** or one of your senders.
3. **To**: one address or several, separated by commas, 20 at most. For the buyer of an order:

```liquid
{{ event.payload.email }}
```

4. **Subject** and **Format**: **HTML** or **Plain text**.
5. Write the **Email**. Liquid works here: `if`, `for`, filters, your variables and secrets.
6. Optional: **Cc**, **Bcc** and **Reply to**. Empty Reply to means the sender's own reply-to address.

```liquid
Hi {{ event.payload.customer.first_name | default: "there" }},

thank you for your order {{ event.payload.name }}:

{% for line in event.payload.line_items %}{{ line.quantity }} x {{ line.title }}
{% endfor %}
```

## Attachments

Select **Add attachment**, up to 5 per email. Each attachment is one of:

- **Link** - an https link, fetched when the email is sent: PDF, images, CSV, text or calendar files.
- **File from Files** - the **file key** of a file in Files, stored by a Files, Download file or File transfer step. Pick that step's key from the variables, or type it.

**File name** is optional: empty means the name from the link, or the last part of the file key. All attachments of one email together can be 10 MB at most.

See [Files, SFTP and downloads](https://docs.workflow-suite.app/files-sftp-and-downloads.md) and [Recipe: email a daily file from SFTP](https://docs.workflow-suite.app/recipe-email-daily-file-from-sftp.md).

## Sending limits

The limit protects your sender and ours from a runaway workflow or a stolen key. It counts **recipients**, per hour and per day (UTC), test emails included. It is not a billing unit.

| Plan | Recipients per day |
| --- | --- |
| Free | 50 |
| Starter | 500 |
| Grow | 5,000 |
| Unlimited | 50,000 |

The hourly limit is a fifth of the daily one, and at least 20. The **Email senders** page shows the limit and what you have used under **Sending limit**, and the last emails under **Recent sends**. When the limit is reached the step fails; it is not retried.

Your mail service has its own limits too. They apply first if they are lower.

## What happens when it runs

- In a **preview** no email is sent. The step checks the addresses, names the sender it would use and checks the limit.
- If the mail server cannot be reached or asks to try again later, the step is tried again automatically. A refused address or a wrong login is not retried. See [Automatic retries](https://docs.workflow-suite.app/automatic-retries.md).
- Later steps can read `messageId`, `recipientCount`, `from` and `provider` from the step's result.
- The send log keeps the number of recipients, never their addresses.

## You are the sender

Emails to customers are your emails. Whether you may send a message, and whether it needs marketing consent, depends on where you sell. The abandoned checkout templates only write to buyers who accept marketing, for that reason.

## Related

- [Recipe: abandoned checkout follow-up](https://docs.workflow-suite.app/recipe-abandoned-checkout-email.md)
- [Alerts by email and text message](https://docs.workflow-suite.app/alerts.md) - the emails the app sends to you are separate from this step.
