What it does
The Send Email tool lets your agents send HTML-formatted emails to one or multiple recipients, optionally attaching files from the current conversation. Suitable for notifications, daily/weekly reports, alerts, and any automated outbound communication. By default, emails are sent through Aster’s shared sender ({Agent Name} <agent-{id}@updates.asteragents.com> or your agent’s email slug if configured). Connect Resend to send from your own verified domain instead — the tool picks up the connection automatically with no agent changes.
Key features
- Send to one or multiple recipients in a single call
- Full HTML body support with inline styling, lists, tables, links
- Attach files from the conversation by filename — generated reports, CSVs, PDFs, anything produced by other tools
- Agent name is used as the display name automatically — different agents in the same org show as different senders
- Works with Resend BYO — when your org has a Resend connection, the tool uses your API key and verified domain transparently
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
to | array of strings | Yes | Recipient email addresses |
subject | string | Yes | Email subject line |
html | string | Yes | HTML body (raw HTML, no XML wrapper) |
attachment_filenames | array of strings | No | Filenames of conversation files to attach (e.g. ["report.xlsx", "data.csv"]). Each name must match a file already present in the conversation — uploaded by the user or produced by another tool. Files not found in the conversation are skipped with a warning. |
From-address behavior
The from-address an agent sends as depends on whether your org has a Resend connection:| Org connection state | From-address |
|---|---|
| No Resend connection (default) | {Agent Name} <{agent-slug or agent-{id}}@updates.asteragents.com> |
| Resend connected (BYO) | {Agent Name} <{your configured from-email}> |
Common use cases
Send a notification
Send a report with an attached file
execute_python or another tool earlier in the conversation, then references it by exact filename here.
Send an alert
Send a daily digest from a scheduled task
Daily/weekly agents commonly usesend_email as the final step of a scheduled run — the agent gathers data, formats a digest, and emails it to a distribution list. Scheduled tasks pick up your Resend connection automatically; no extra config beyond connecting Resend once.
HTML formatting tips
- Use standard inline HTML —
<h1>,<h2>,<p>,<strong>,<em>,<a href="…">,<ul>,<ol>,<table> - Prefer inline
style="…"over<style>blocks — many email clients strip the latter - Keep CSS simple; avoid flexbox/grid for layout (poor email-client support)
- Test on Gmail and Outlook for any high-volume sending
Best practices
- Keep subject lines short and specific — recipients see them before the body
- For high-volume sending or external recipients, connect BYO Resend so your domain’s reputation is what carries deliverability
- For attachments, generate the file with
execute_pythonor another tool earlier in the conversation, then reference it by exact filename - Resend’s per-message attachment cap is 40 MB total across all attachments — oversize files are skipped with a warning rather than rejecting the whole send
Troubleshooting
“No recipients provided in ‘to’”- The
toparameter must be a non-empty array of strings (e.g.["a@b.com"])
- Both subject and html are required and must be non-empty strings
- The from-address’s domain isn’t fully verified in Resend, the recipient is malformed, or the key was revoked — see Resend integration troubleshooting
- Email clients aggressively strip CSS — stick to inline styles and standard tags
- Use a litmus test recipient to preview before broad sends
- The
attachment_filenamesentry must match exactly the filename of a file already in the conversation (case-sensitive, including extension) - Files generated by tools earlier in the conversation are referenceable by their filename — check the tool result for the exact filename it produced
- If the file is missing from the conversation, the tool logs a warning and proceeds without the attachment rather than failing the send
updates.asteragents.com when I expected my own domain
- Confirm Resend is connected under Control Hub > Integrations > Resend — the card should show Connected
- See the Resend integration troubleshooting for connection issues
Related
- Resend Integration — connect your own Resend account so agents send from your verified domain
- Schedule Task — scheduled agents typically end with
send_emailto deliver a digest - Execute Python — generate report files in the conversation, then attach them via
attachment_filenames - Email Your Agent — let users email an agent and get an emailed reply back (uses the same outbound path, including BYO Resend)
