E-mails
The list of sent and scheduled emails, the detail of each one and the delivery events.
What it's for
The Emails screen shows everything the team sent through the API and SMTP, with the delivery status of each message. From here you can check whether an email arrived, see the exact content that went out, resend it, cancel a scheduled send and share an email with someone who doesn't have an account.
When to use: To answer "did the customer's email arrive?", investigate bounces and complaints, or test an integration and see the result right away.
#Email list
Where to find it: Emails › Emails. Address: app.postal.so/emails.
The list starts with the most recent emails. Postal keeps emails, attachments and history for 30 days (scheduled ones until they go out); after that they leave the list. To keep them longer, use webhooks or the Export button.
Toolbar
| Item | What it does |
|---|---|
| Search by recipient, sender, subject or ID | Searches as you type (it waits for a pause). It is also useful for pasting the ID of an email that showed up in a log or a webhook. |
| Period | Shortcuts (Today, Yesterday, Last 24 hours, Last 3 days, Last 7 days, Last 15 days and Last 30 days), plus Pick days on the calendar for a custom range and All time to clear it. Dates follow your browser's time zone. |
| Filters | Opens a panel with three filters: Status (All statuses or one of the statuses below), Domain (All domains) and API key (All keys). The button shows how many filters are on. See how the button works. |
| Export | Generates a CSV file with the emails in the list, respecting the search, the period and the filters. The file is built in the background; the download starts from the task card in the corner of the screen and stays in Settings › Exports for 7 days. With an empty list, the button is turned off (There is nothing to export with these filters.). |
| View code | The </> button in the header shows how to List emails through the API (GET /emails). |
Columns
| Column | What it shows |
|---|---|
| To | The recipients, with a status icon on the left. Clicking opens the detail. |
| Status | The most advanced state of the email (table below). |
| Subject | The subject, cut off if it is long. |
| Sent / Sent at | How long ago the email went out (or when it will go out, if scheduled). Click the column title, or the value itself, to switch between Sent (relative) and Sent at (full date). Your choice is saved in this browser. |
| Row menu | View details; Copy ID; Resend (creates a new email with the same sender, recipients, subject and content, without the attachments; it doesn't appear on scheduled emails); Cancel sending (only on scheduled emails). |
Email status
The status only moves forward: a Clicked email doesn't go back to Delivered, even if the events arrive out of order.
| Status | What it means |
|---|---|
| Queued | Accepted by Postal, going out in a moment. |
| Scheduled | Set for a future date. It can be rescheduled or canceled until the send time. |
| Sent | Accepted by the sending provider. |
| Delayed | The recipient's server postponed delivery; new attempts happen on their own. |
| Delivered | Delivered to the recipient's server. |
| Opened | The recipient opened it (only with open tracking turned on for the domain). |
| Clicked | A link was clicked (only with click tracking turned on). |
| Bounce | Returned by the recipient's server. Permanent bounces put the address on the suppression list. |
| Spam | The recipient marked it as spam. The address also goes to the suppression list. |
| Failed | It could not be sent: unverified domain, sending paused, inaccessible attachment and other reasons. |
| Suppressed | All or some of the recipients were on the suppression list and did not receive it. |
| Canceled | A scheduled send was canceled. |
More details on the events and the email object are in Status of an email in the API reference.
Tip
To find addresses that don't exist, filter by Status › Bounced. The paused-sending banner also takes you straight to that list. To see only what an integration sent, filter by the API key it uses.
When the list is empty
If the team doesn't have a domain yet, the screen says No emails sent yet and asks you to add a domain first; after that, create an API key and make a POST /emails request. The step-by-step is in Getting started.
#Email detail
Where to find it: Emails › Emails, by clicking an email. Address: app.postal.so/emails.
The detail shows a whole message: where it came from, who it went to, what happened to it and how the content turned out. The title is the subject and, right below it, the current status.
Header buttons
| Item | What it does |
|---|---|
| Timeline | Opens a side panel with every event of the email, from oldest to newest, with date and time: created in the queue, sent, delivered, opened, clicked, bounced and so on. On a bounce, it shows whether it was a Permanent bounce or a Temporary bounce and the server's message, which helps you understand the reason. |
| Insights | Opens the email's deliverability checks: Plain-text version, No link shorteners, HTTPS links, No links to IP addresses, Images with alt text, HTML size (Gmail clips messages above 102 KB), Text-to-image balance, A sender that accepts replies, Subject not in all caps, Unsubscribe option and DMARC configured. What didn't pass comes first, with the explanation. If the AI assistant is available, How do I fix it? explains step by step (uses 1 AI credit). |
| View code | Shows how to retrieve this email through the API (GET /emails/{id}). |
| Share | Creates a public link to the email, valid for 48 hours, and copies it to the clipboard (the button turns green with Copied). Anyone who opens the link sees the message without needing an account. Further clicks on Copy link copy the same link. |
| Resend | Creates a new email with the same content and opens the new detail. It counts toward the sending quota like any other. |
| Reschedule / Cancel sending | Only on scheduled emails. Reschedule changes the time (see Scheduled); Cancel sending gives up on the send. |
Email data
| Field | What it shows |
|---|---|
| From, To, Cc, Bcc, Reply to | The addresses as they were sent. Cc, Bcc and Reply to only appear when they exist. |
| ID | The email's identifier, with a copy button. It's what the API and webhooks use. |
| Created | When Postal received the send request. |
| Source | API or SMTP. |
| Request | The View request log link takes you to the log of the call that created the email, with the body sent and the response. |
| Scheduled for | The date and time of the send, on scheduled emails. |
| Tags | Name and value pairs you sent in the API, useful for filtering and relating to your own system. |
Content
| Tab | What it shows |
|---|---|
| View | The rendered email, as the recipient sees it. |
| HTML | The HTML code sent, with a copy button. |
| Text | The plain-text version. |
| Raw | The full message, with the headers (.eml format). It's the best source for investigating delivery problems. |
If the email has attachments, the Attachments section lists each file with its type and size and a Download link.
See also: GET /emails/{id} · Email events · Diagnosis through the API.
#Scheduled
Where to find it: Marketing › Scheduled. Address: app.postal.so/scheduled.
A single list, by day, of everything set for a time: scheduled broadcasts, emails scheduled through the API or the dashboard, and the scheduled activations and pauses of automations. Use it to see what is going out and when, without opening each screen.
| Item | What it does |
|---|---|
| Filters › Type | Shows only one type: Broadcast, Email, Activation or Pause (All types clears the filter). |
| Times in ... | A reminder of the time zone the times appear in: your browser's. A broadcast scheduled in another time zone also shows the time chosen there. |
| Day | Each day has a title (Today and Tomorrow when applicable) and the number of items (N items). |
| Row | The time, the type (icon and badge), the item name (a link that opens the broadcast, the email or the automation) and a detail line: To the segment or the addresses, or, for automations, The automation starts taking contacts / The automation stops taking contacts. |
| Row menu | Open; Reschedule (opens the date and time picker for the type); Cancel schedule. Canceling a broadcast or an email stops it from going out; canceling an activation or a pause only removes the mark and the automation stays as it is. |
The screen shows the next 100 of each type (Showing the next 100 of each type.) and refreshes on its own. Emails and broadcasts can be scheduled up to 30 days ahead.
Reschedule an email
Reschedule opens Reschedule email: the content and recipients stay the same, only the time changes. Pick the Date, the Time and the Time zone (Brasília time, UTC and others), or use one of the Shortcuts: Tomorrow at 9 AM, Monday at 9 AM and In 1 hour. The summary below confirms the time in the chosen zone. If the email has already gone out or was canceled, the panel says it is no longer scheduled.
See also: Reschedule email (API) · Campaigns · Automations.
#Events
Where to find it: Marketing › Events. Address: app.postal.so/events.
Events are things that happen in your product that you send to Postal: a purchase, a signup, a cancellation. They are tied to a contact, show up here, and can start automations and personalize emails. Postal keeps events for 90 days.
Don't confuse them with an email's events (delivered, opened, clicked), which live in the email's timeline, or with webhook events.
List
| Item | What it does |
|---|---|
| Contact (email or ID) | A search field to see only one person's events. |
| Filters › Event | Picks an event name from the ones that have already arrived (All events clears it). |
| Column | What it shows |
|---|---|
| Event | The name (for example, order.paid). Clicking opens the detail. |
| Contact | The contact's email, or a dash when the event has no contact. |
| Properties | A summary of the data sent with the event. |
| When | How long ago it happened; the mouse pointer shows the full date. |
Clicking an event opens a window with the name, the contact and the date, the properties in JSON (with Copy properties), the event ID and the View contact link.
Send an event
The panel on the right, Send an event, has ready-made code in cURL, Node.js, PHP and Python (Language tab) with a copy button. Any API key works, including send-only ones. The fields:
| Field | What it is |
|---|---|
| name | Required. Letters, numbers and the symbols . _ : - (like order.paid). |
| contact | Email or contact ID. If the email doesn't exist, the contact is created. Without contact, the event is recorded but doesn't start automations. |
| properties | A free-form object up to 16 KB. Used in filters, in automation conditions and in emails, like {{event.order_id}}. |
| occurred_at | Optional. When it happened (ISO 8601); defaults to now. |
Repeat the request with the same Idempotency-Key header so the event isn't duplicated.
Tip
Before building an event-based automation, send a test event and check the name here: the name must be identical in the automation's trigger.
See also: Events (API) · Automations · Idempotency.