Skip to content
Coritan Docs

Look up message events

Find out what happened to your messages by recipient or event type, from the last 24 hours to the last 90 days.

View as Markdown

In the dashboard

The Events tab of an SMTP Relay service lists what happened to the messages it sent: each one we queued, delivered, deferred or bounced, each complaint, and each message or recipient the relay refused. Use it to answer a question such as "did my receipt reach alex@example.com?", up to 90 days back.

To have events sent to your application as they happen, add a webhook.

  • An SMTP Relay service that has sent mail. Events appear a short time after each step of a delivery.
  1. In the dashboard, go to Email, open the SMTP Relay service, then the Events tab.
  2. In Event, choose the kind of event to list, or leave All events. Event categories describes each one.
  3. In Window, choose how far back to look: Last 24 hours, Last 3 days, Last 7 days, Last 30 days or Last 90 days. The tab opens on Last 7 days.
  4. To see the events for one recipient, enter the whole address in Recipient, such as alex@example.com, and select Filter. Part of an address finds nothing. Clear removes the recipient filter.

Select Refresh to load events that arrived since you opened the tab.

The Delivery events card lists the matching events, newest first:

Recipient
The recipient, with the sender under it.
Event
The event's category.
Response
What the receiving server replied. When there is no reply, the server we connected to, or the detailed event type. Hover over it to see the detailed event type.
When
How long ago the event happened. Hover over it to see the date and time.

The list holds up to 200 events. When it is full, a note under it says Showing the latest 200. Narrow the window or filter by recipient to see older events. The count above the list is the number of events shown, so it stops at 200 too.

category What happened
accepted We queued the message for delivery.
delivered The receiving server took the message.
deferred The receiving server refused the message for now, or a sending limit held it back. We try again later.
bounced The message was not delivered and we will not try again. We add the recipient to the suppression list.
complaint A report about the message reached us: the recipient marked it as spam, or a mailbox provider reported it as fraud or as failing authentication. We add the recipient to the suppression list.
rejected The relay refused the message, or one of its recipients, when your application submitted it over SMTP. The reply your application got says why.

The Event column and the Event filter write each category with a capital letter. Receive delivery events with webhooks lists the detailed event types behind each category.

Rows marked Other (other or null in the API) are steps of a delivery that have no category of their own, such as the end of a delivery attempt. The Event filter cannot select them.

The Event filter also offers suppressed and report, and both normally find nothing:

  • We record no suppressed event. A message to a suppressed address appears as rejected when the relay refused the address over SMTP, and not at all when the send API left it out.
  • DMARC and TLS reports about your domains are kept apart from events. The dashboard does not list them, and the API returns them with the reputation report.
No events in this window
Nothing matches the filters. Choose a longer Window, check the whole address in Recipient, or select Clear. A message sent in the last minute or so may not have its events yet.
A message you sent is not listed
When the relay refused the whole message before it was queued, your application got the refusal as an SMTP reply or an API error, and the list may hold a rejected event or nothing. Send over SMTP with credentials and Send email over HTTPS explain each refusal.
A recipient has accepted but nothing after it
The message is still in the queue, or the receiving server has not answered yet. A deferred event means we are trying again. Check again later, and look at Response on the latest event.
Shell
curl "https://api.coritan.com/api/v1/client/smtp-relay/4812/events?category=bounced&hours=168&limit=50" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
category
Optional. One of accepted, delivered, deferred, bounced, complaint, rejected and report. Any other value answers an empty list.
recipient
Optional. The whole recipient address. Case does not matter.
hours
How far back to look, 1–2160 hours (90 days). The default is 24.
limit
The most events to return, 1–500. The default is 100.

A value for hours or limit outside its range answers 422. The answer lists the newest events first:

JSON
{
  "items": [
    {
      "id": 90415,
      "event_type": "delivery.failed",
      "category": "bounced",
      "queue_id": "7d2c91a04e",
      "message_id": "<175890432171.2481.9311874401294517206@example.com>",
      "sender": "receipts@example.com",
      "recipient": "alex@example.com",
      "remote_host": "mx.example.net",
      "response": "550 5.1.1 <alex@example.com>: Recipient address rejected: User unknown",
      "local_ip": "203.0.113.25",
      "node_id": 3,
      "occurred_at": "2026-09-16T10:52:08"
    }
  ],
  "total": 1
}
id
The event's id, the same one a webhook request carries.
event_type
The detailed event type, such as delivery.failed.
category
The category from Event categories, or other or null for a step that has none.
queue_id
Our id for the message in the delivery queue, the same on every event about that message.
message_id
The message's Message-ID header.
sender and recipient
The sender and recipient addresses, in lower case. An event about the whole message, such as accepted, names only its first recipient.
remote_host
The receiving server we connected to.
response
The receiving server's reply or the reason for the event, up to 2,000 characters.
local_ip
The address the message left our servers from.
node_id
Our id for the mail server that handled the event. Use it only to tell servers apart.
occurred_at
When the event happened, in UTC, with no time zone suffix.
total
The number of events in this answer, which is never more than limit. It does not count the events the limit left out.

Any field except id, event_type and occurred_at is null when the event does not carry it.

Mail Hosting has no Events tab, but the same operation works under /client/mail/{service_id}/events and lists the events we record for mail the service's mailboxes send. The Recent activity card on its Overview tab shows the latest eight events from the last seven days. Some bounces reach the sending mailbox only as an Undelivered Mail Returned to Sender message and are not listed.

API operations on this page