Runtime API
An EmailEvent
is the event type to programmatically process your emails with a Worker. You can reject, forward, or drop emails according to the logic you construct in your Worker.
EmailEvent
can be handled in Workers functions written using the Service Worker syntax by attaching to the email
event with addEventListener
:
-
event.message
EmailMessage
EmailEvent
can be handled in Workers functions written using the ES modules format by adding an email
function to your module’s exported handlers:
-
message
EmailMessage -
env
object- An object containing the bindings associated with your Worker using ES modules format, such as KV namespaces and Durable Objects.
-
ctx
object- An object containing the context associated with your Worker using ES modules format. Currently, this object just contains the
waitUntil
function.
- An object containing the context associated with your Worker using ES modules format. Currently, this object just contains the
-
from
stringEnvelope From
attribute of the email message.
-
to
stringEnvelope To
attribute of the email message.
-
headers
Headers -
raw
ReadableStream- Stream of the email message content.
-
rawSize
number- Size of the email message content.
-
setReject(reasonstring)
: void- Reject this email message by returning a permanent SMTP error back to the connecting client, including the given reason.
-
forward(rcptTostring, headersHeadersoptional)
: Promise- Forward this email message to a verified destination address of the account. If you want, you can add extra headers to the email message. Only
X-*
headers are allowed. - When the promise resolves, the message is confirmed to be forwarded to a verified destination address.
- Forward this email message to a verified destination address of the account. If you want, you can add extra headers to the email message. Only
-
reply(messageEmailMessage)
: Promise- Reply to the sender of this email message with a new EmailMessage object.
- When the promise resolves, the message is confirmed to be replied.