Skip to main content

Interface: EmailPreviewRequest

Defined in: packages/sdk/src/types/generated/email_preview.ts:31

Render an assembled preview for a compose or template send.

The preview shares delivery's template rendering and outbound-body assembly. It does not construct final MIME parts: embedded images retain authenticated contents URLs here, while delivery reads their bytes and uses content IDs.

mode selects which surface's rendering rules apply:

  • "compose"content/htmlContent are the compose/reply editor's literal draft. htmlContent is sanitized exactly as EmailSendRequest sanitizes it before a real send.
  • "template"htmlContent carries the email:send action's body TEMPLATE (HTML containing Jinja {{ … }} expressions), subject the subject template, and contentType the action's content-type policy. The raw TEMPLATE (with its {{ … }} expressions) is not sanitized before Jinja rendering — sanitizing template source would mangle the Jinja syntax itself. Once rendered, element-containing HTML goes through split_authored_body's layout-permissive sanitizer (sanitize_template_body_html) just as delivery does, so the preview includes the same sanitized assembled body.

Properties

content?

optional content: string | null

Defined in: packages/sdk/src/types/generated/email_preview.ts:36


contentType?

optional contentType: EmailPreviewRequestContentType

Defined in: packages/sdk/src/types/generated/email_preview.ts:38


htmlContent?

optional htmlContent: string | null

Defined in: packages/sdk/src/types/generated/email_preview.ts:37


mode

mode: EmailPreviewRequestMode

Defined in: packages/sdk/src/types/generated/email_preview.ts:32


recipient?

optional recipient: string | null

Defined in: packages/sdk/src/types/generated/email_preview.ts:35


subject?

optional subject: string

Defined in: packages/sdk/src/types/generated/email_preview.ts:34

Max Length

998


templateContext?

optional templateContext: TemplateContextRequest | null

Defined in: packages/sdk/src/types/generated/email_preview.ts:39