個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Drag-n-Drop Email Editor Component for React.js
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Add a production-ready, drag-and-drop email builder to your React app with a single component. react-email-editor lets developers embed Unlayer, load and save designs, listen to editor events, customize configuration, and export responsive HTML.
Use it when you need email template creation inside your app without building and maintaining a full visual editor from scratch.
| Video Overview |
|---|
| Watch video overview: https://youtu.be/qp9t74G4VyM |
Check out the live demo here: https://react-email-editor-demo.netlify.app/ (Source Code)
The easiest way to use React Email Editor is to install it from NPM and include it in your own React build process.
npm install react-email-editor --save
Version 2.0 is a modernization release — the component API is unchanged, and most apps can upgrade without code changes. Requirements and packaging did change:
react-email-editor/dist/... are blocked by the new exports map.node_modules.See the CHANGELOG for the full list.
Require the EmailEditor component and render it with JSX:
import React, { useRef } from 'react';
import { createRoot } from 'react-dom/client';
import EmailEditor, { EditorRef, EmailEditorProps } from 'react-email-editor';
const App = (props) => {
const emailEditorRef = useRef<EditorRef>(null);
const exportHtml = () => {
const unlayer = emailEditorRef.current?.editor;
unlayer?.exportHtml((data) => {
const { design, html } = data;
console.log('exportHtml', html);
});
};
const onReady: EmailEditorProps['onReady'] = (unlayer) => {
// editor is ready
// you can load your template here;
// the design json can be obtained by calling
// unlayer.loadDesign(callback) or unlayer.exportHtml(callback)
// or generated from React code with @unlayer/react-elements (renderToJson)
// const templateJson = { DESIGN JSON GOES HERE };
// unlayer.loadDesign(templateJson);
};
return (
<div>
<div>
<button onClick={exportHtml}>Export HTML</button>
</div>
<EmailEditor ref={emailEditorRef} onReady={onReady} />
</div>
);
};
createRoot(document.getElementById('app')!).render(<App />);
See the example source for a reference implementation.
The editor renders into the DOM, so the component is client-only. The published bundle includes the 'use client' directive, so with the Next.js App Router you can import it directly from any Client Component — no next/dynamic workaround required.
All unlayer methods are available in the editor instance (emailEditorRef.current.editor). See the Unlayer Docs for more information, or log the object in the console to explore it. Here are the most used ones:
| method | params | description |
|---|---|---|
| loadDesign | Object data | Takes the design JSON and loads it in the editor |
| saveDesign | Function callback | Returns the design JSON in a callback function |
| exportHtml | Function callback | Returns the design HTML and JSON in a callback function |
editorId {String} HTML div id of the container where the editor will be embedded (optional)minHeight {String} minimum height to initialize the editor with (default 500px)onLoad {Function} called when the editor instance is createdonReady {Function} called when the editor has finished loadingoptions {Object} options passed to the Unlayer editor instance (default {})
style {Object} style object for the editor container (default {})The email editor output is tested using the most popular email clients.
| Gmail ✔ | Apple Mail ✔ | Outlook ✔ | Yahoo! Mail ✔ |
Add AI-powered content creation to your embedded email editor.
Unlayer’s AI Assistant helps users generate, rewrite, translate, and improve email content directly inside the editor. Developers can enable AI features through the editor configuration, giving users a faster way to create polished emails without leaving your app.
Custom tools can help you add your own content blocks to the editor. Every application is different and needs different tools to reach it's full potential. Learn More
You can submit new language translations by creating a PR on this GitHub repo: https://github.com/unlayer/translations. Translations managed by PhraseApp
@unlayer/react-elements: write templates in code as React components (Email, Row, Column, Heading, Paragraph, Button, …) and render them to email HTML, responsive web pages or print-ready HTML for PDFs. renderToJson() synchronously returns design JSON you can pass to loadDesign, so templates written in code (by developers, coding agents, or an LLM at runtime) stay editable in this editor.Copyright (c) 2026 Unlayer. MIT Licensed.