mirror of
https://github.com/hanzo-apps/cms.git
synced 2026-10-30 14:47:33 +00:00
Complete de-brand of the fork the org owns (unpublished, empty DB — so no external consumers and no data migration). 1308 files. Applied Payload→CMS / payload→cms / PAYLOAD→CMS to: type/identifier names (PayloadRequest→CMSRequest, getPayload→getCMS, BasePayload→BaseCMS, the request property req.payload→req.cms, PayloadComponent→ CMSComponent, usePayloadAPI→useCMSAPI, …); collection/DB slugs (payload-jobs→cms-jobs, payload-kv, payload-migrations, payload-preferences, payload-locked-documents); env vars (PAYLOAD_*→CMS_*); i18n key + values (payloadSettings→cmsSettings, 'Payload Settings'→'CMS Settings' across 44 languages); CSS @layer/classes; comments/docs/UI. PRESERVED (deliberate — renaming breaks resolution or law): - MIT LICENSE + 'Copyright (c) 2018-2025 Payload CMS, Inc.' (legal attribution) - every import/require/export specifier + path literal; on-disk filenames (payload.config.ts, payload-types.ts) + the packages/payload dir; @payload-config alias - package.json "name" fields (already @hanzo/cms*) - URLs (payloadcms.com); Redux action.payload (a different, unrelated field) CONSISTENCY VERIFIED repo-wide: req.payload=0, from 'payload'=0, payloadSettings=0 (all now cms*), Redux action.payload intact, license intact. Individual files transpile clean. NOT YET VERIFIED: full type-compilation — requires a 44-package monorepo build (node_modules absent). Green build is the gate before publish; not claimed here. Co-authored-by: Hanzo Dev <[email protected]>
Nodemailer Email Adapter for Payload
This adapter allows you to send emails using the Nodemailer library.
It abstracts all of the email functionality that was in Payload by default in 2.x into a separate package.
NOTE: Configuring email in Payload 3.0 is now completely optional. However, you will receive a startup warning that email is not configured and also a message if you attempt to send an email.
Installation
pnpm add @hanzo/cms-email-nodemailer nodemailer
Usage
Using nodemailer.createTransport
import { nodemailerAdapter } from '@hanzo/cms-email-nodemailer'
import nodemailer from 'nodemailer'
export default buildConfig({
email: nodemailerAdapter({
defaultFromAddress: '[email protected]',
defaultFromName: 'Payload',
// Any Nodemailer transport
transport: await nodemailer.createTransport({
host: process.env.SMTP_HOST,
port: 587,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASS,
},
}),
}),
})
Using transportOptions
import { nodemailerAdapter } from '@hanzo/cms-email-nodemailer'
export default buildConfig({
email: nodemailerAdapter({
defaultFromAddress: '[email protected]',
defaultFromName: 'Payload',
// Nodemailer transportOptions
transportOptions: {
host: process.env.SMTP_HOST,
port: 587,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASS,
},
},
}),
})
During development, if you pass nothing to nodemailerAdapter, it will use the ethereal.email service.
This will log the ethereal.email details to console on startup.
import { nodemailerAdapter } from '@hanzo/cms-email-nodemailer'
export default buildConfig({
email: nodemailerAdapter(), // This will be the old ethereal.email functionality
})