Skip to content
emailkit
Esc
navigateopen⌘Jpreview
On this page

email.onDelivered

The recipient's server accepted the message.

Fires when the recipient’s mail server accepts the message. responseTime is included when the provider measures it.

hooks: {
  email: {
    onDelivered: async (event) => {
      await prisma.sentEmail.updateMany({
        where: { messageId: event.messageId },
        data: { status: "delivered" },
      });
    },
  },
},

Delivered means the server took the message — whether it landed in the inbox or the spam folder is not observable. When delivery fails instead, onBounced fires.

Payload

PropType
emailDriver?string

EmailKit driver id that produced this event, attached by the EmailKit client.

Typestring
schemaVersion?"1"

Schema version for forward-compat

Type"1"
eventId?string

Unique event identifier for dedupe

Typestring
messageIdstring

Unique message identifier from the email provider

Typestring
providerId?string

Provider-specific message identifier (in addition to messageId). This is the provider's internal ID for this message, separate from the RFC Message-ID. Useful for provider-specific operations or tracking.

Typestring
recipientstring

Email address of the recipient (always available)

Typestring
status| "sent" | "delivered" | "opened" | "clicked" | "bounced" | "complained" | "rejected"

Event status/type

Type| "sent" | "delivered" | "opened" | "clicked" | "bounced" | "complained" | "rejected"
timestampDate

Timestamp when the event occurred

TypeDate
from?EmailAddress

Sender email address (available in sent/accepted events)

TypeEmailAddress
to?EmailAddress[]

Recipient email addresses (available in sent/accepted events)

TypeEmailAddress[]
subject?string

Email subject (available in sent/accepted events)

Typestring
tags?EmailTag[]

Custom metadata/tags associated with the email

TypeEmailTag[]
metadata?Record<string, string>

Custom metadata key-value pairs

TypeRecord<string, string>
campaignId?string

Campaign or tracking identifier

Typestring
recipientDomain?string

Domain of the recipient (e.g., "gmail.com")

Typestring
server?string

Receiving server information

Typestring
raw?unknown

Provider-specific raw data (for debugging or advanced use cases)

Typeunknown
responseTime?number

Response time in milliseconds (if available)

Typenumber

Last updated on July 24, 2026

Was this page helpful?