Sent Mail
Track sent emails and monitor delivery status
Sent Mail
The Sent Mail view provides a history of all outbound emails with delivery status tracking.
Sent Mail Overview
All sent emails are listed with key details:
| Column | Description |
|---|---|
| Subject | Email subject line |
| Recipients | Who the email was sent to |
| Sent At | Date and time of delivery |
| Status | Current delivery status |
| Template | Template used, if any |
Delivery Status
Each sent email has a delivery status:
| Status | Meaning |
|---|---|
| Delivered | Successfully delivered to the recipient's mail server |
| Opened | Recipient opened the email |
| Clicked | Recipient clicked a link in the email |
| Bounced | Email could not be delivered |
| Failed | Send attempt failed |
Failed sends and retries
When the mail provider reports a temporary problem (most often Microsoft 365 throttling a mailbox that is sending too many messages at once), Alpha waits and retries the send automatically, honouring the delay the provider asks for. Only a send that still fails after several attempts is marked Failed.
Some failures are not retried, because retrying cannot help:
| Message contains | What it means | What to do |
|---|---|---|
Graph 403: Access is denied | The Microsoft 365 app registration has no permission to send from that mailbox | Grant the app Mail.Send for the mailbox via an Exchange Online application access policy |
No sender mailbox configured | No Outlook mailbox is set for the tenant | Set the mailbox under Settings |
A send that never completes at all (for example because the server restarted mid-send) is marked Failed after 30 minutes with a note that delivery could not be confirmed. Alpha does not resend these automatically, since the message may already have reached the recipient. Check with the recipient before using Resend.
Resending a batch of failures
Once the cause of a failure is fixed, previously-failed mail can be sent again in bulk via
POST /communications/resend-failed. It is worth doing only where the message still has value on
arrival: a brochure someone asked for is still useful weeks later; a "your estimate was accepted"
notification is not.
The operation defaults to a dry run, reporting what it would send without sending anything. Set
dryRun: false to send. It always skips:
- recipients on the unsubscribe list
- recipients who have been successfully mailed since their failure; they are still being reached, and an old message would arrive out of order next to their current mail
- older failures for a recipient who has a newer one, so nobody receives a backlog at once
Narrow the batch with relatedEntityType, templateName, from/to and limit. Sending runs in
the background and is paced, so a large batch does not arrive as one burst.
Sent Mail Actions
View Details
Click on any sent email to see:
- Full email content as sent
- Recipient list with individual delivery status
- Open and click events with timestamps
- Thread history if replies exist
Resend
Resend a previously sent email:
- Open the sent email details
- Click Resend
- Optionally modify recipients
- Confirm to resend
Filtering and Search
Filter sent mail by:
- Date range
- Delivery status
- Template used
- Recipient