EmailEvent
 Background
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.
 Syntax: Service Worker
EmailEvent can be handled in Workers functions written using the Service Worker syntax by attaching to the email event with addEventListener:
addEventListener("email", (event) => {  event.message.forward("<YOUR_EMAIL>");
});
 Properties
event.messageEmailMessage
 Syntax: ES modules
EmailEvent can be handled in Workers functions written using the ES modules format by adding an email function to your module’s exported handlers:
export default {  async email(message, env, ctx) {    message.forward("<YOUR_EMAIL>");  },
};
 Parameters
messageEmailMessageenvobject- An object containing the bindings associated with your Worker using ES modules format, such as KV namespaces and Durable Objects.
 
ctxobject- An object containing the context associated with your Worker using ES modules format. Currently, this object just contains the 
waitUntilfunction. 
- An object containing the context associated with your Worker using ES modules format. Currently, this object just contains the 
 
EmailMessage definition
 interface EmailMessage<Body = unknown> {  readonly from: string;  readonly to: string;  readonly headers: Headers;  readonly raw: ReadableStream;  readonly rawSize: number;
  public constructor(from: string, to: string, raw: ReadableStream | string);
  setReject(reason: string): void;  forward(rcptTo: string, headers?: Headers): Promise<void>;  reply(message: EmailMessage): Promise<void>;
}
fromstringEnvelope Fromattribute of the email message.
tostringEnvelope Toattribute of the email message.
headersHeadersrawReadableStream- Stream of the email message content.
 
rawSizenumber- 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, headersHeaders):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.