Interface: EmailDocumentProps
Props for the complete React Email document.
Extends
Section titled “Extends”Properties
Section titled “Properties”body:
string
Inherited from
Section titled “Inherited from”brand?
Section titled “brand?”
optionalbrand?:EmailBrand
Inherited from
Section titled “Inherited from”footer?
Section titled “footer?”
optionalfooter?:string
framed?
Section titled “framed?”
optionalframed?:boolean
Draw the card’s own frame: rounded corners, border, drop shadow, and the 620px reading width. Delivered mail keeps it, because the card floats on the client’s page background and the frame is what separates the two.
Turn it off when the card already sits inside a surface that frames it - a browser preview’s reading pane - so the two frames do not nest into a rounded card inside a rounded card.
headers?
Section titled “headers?”
optionalheaders?: readonly readonly [string,string][]
Optional envelope rows rendered above the body (From / To / Cc / …). Kept for local outbox previews that deliberately show the wire envelope; delivered SMTP mail and browser approval/compose previews leave this unset — those surfaces put recipients and attachments in client chrome instead.
heading?
Section titled “heading?”
optionalheading?:string
Visible heading inside the email card. Omit it for ordinary messages so the transport subject stays a transport subject and is not repeated as a body title. Pass a shorter heading when the subject carries notification-specific details (one-time-code mail is the motivating case).
preview?
Section titled “preview?”
optionalpreview?:string
Preheader text: the snippet a client shows next to the subject in a list, and
- the reason this is a prop - the text a mobile OS puts in the PUSH NOTIFICATION body.
Defaults to the subject. Set it when the notification should say something the subject does not. One-time-code mail is the case that motivated it: iOS reads an incoming notification’s text to offer an autofill code (natively for Mail and Messages, and since iOS 26 for any app’s notification, Gmail included), so a code that appears only in the BODY is never seen - the notification carries the subject and this snippet, nothing more.
subject?
Section titled “subject?”
optionalsubject?:string