Skip to main content
The platform supports two email providers, selected at runtime by the MAIL_PROVIDER environment variable. The same Nitro service layer handles both; only the transport differs.

Selecting a provider

MAIL_PROVIDER=smtp    # use SMTP transport
MAIL_PROVIDER=graph   # use Microsoft Graph / SendGrid
SMTP is the simplest option for self-hosted or third-party relay services (Mailgun, Postmark, etc.).

Required variables

MAIL_PROVIDER=smtp
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURE=0           # set to 1 for TLS on port 465
SMTP_USER=[email protected]
SMTP_PASS=yourpassword
SMTP_FROM=[email protected]
MAIL_TO=[email protected]
SMTP_SECURE=1 enables TLS. Use 0 for STARTTLS on port 587.

Runtime config mapping

// nuxt.config.ts
mail: {
  provider: process.env.MAIL_PROVIDER,
  host:     process.env.SMTP_HOST,
  port:     process.env.SMTP_PORT,
  secure:   process.env.SMTP_SECURE === "1",
  user:     process.env.SMTP_USER,
  pass:     process.env.SMTP_PASS,
  from:     process.env.SMTP_FROM,
  to:       process.env.MAIL_TO,
}

Contact form list

In addition to email, contact form submissions can be written to a SharePoint List configured with:
SP_LIST_CONTACT_ID=    # SharePoint List ID for contact form entries

Triggered notifications

EventRecipientProvider used
New price request submittedMAIL_TOConfigured provider
Contact form submittedMAIL_TOConfigured provider
The email body includes the customer name, email, phone, company, product details, and the quote message.

Build docs developers (and LLMs) love