返回顶部
r

react-emailReact邮件模板

Use when creating HTML email templates with React components - welcome emails, password resets, notifications, order confirmations, newsletters, or transactional emails.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.0
安全检测
已通过
3,740
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

react-email

React Email

使用React组件构建和发送HTML电子邮件——一种基于组件的现代电子邮件开发方法,适用于所有主流电子邮件客户端。

安装

你需要使用create-email CLI来搭建一个新的React Email项目。这将创建一个名为react-email-starter的文件夹,其中包含示例电子邮件模板。

使用npm:
sh
npx create-email@latest

使用yarn:
sh
yarn create email

使用pnpm:
sh
pnpm create email

使用bun:
sh
bun create email

进入项目目录

你必须切换到新创建的项目文件夹:

sh
cd react-email-starter

安装依赖

在启动开发服务器之前,你需要安装所有项目依赖。

使用npm:
sh
npm install

使用yarn:
sh
yarn

使用pnpm:
sh
pnpm install

使用bun:
sh
bun install

启动开发服务器

你的任务是启动本地预览服务器,以查看和编辑电子邮件模板。

使用npm:
sh
npm run dev

使用yarn:
sh
yarn dev

使用pnpm:
sh
pnpm dev

使用bun:
sh
bun dev

验证安装

通过检查localhost:3000是否可访问来确认开发服务器正在运行。服务器将显示一个预览界面,你可以在其中查看emails文件夹中的电子邮件模板。

安装说明

假设React Email已安装在现有项目中,请更新顶层的package.json文件,添加一个脚本来运行React Email预览服务器。

json
{
scripts: {
email: email dev --dir emails --port 3000
}
}

确保emails文件夹的路径相对于项目根目录。

tsconfig.json的更新或创建

确保tsconfig.json包含对jsx的适当支持。

基本电子邮件模板

替换示例电子邮件模板。以下是创建新电子邮件模板的方法:

使用Tailwind组件进行样式设置,创建一个结构正确的电子邮件组件:

tsx
import {
Html,
Head,
Preview,
Body,
Container,
Heading,
Text,
Button,
Tailwind,
pixelBasedPreset
} from @react-email/components;

interface WelcomeEmailProps {
name: string;
verificationUrl: string;
}

export default function WelcomeEmail({ name, verificationUrl }: WelcomeEmailProps) {
return (

config={{
presets: [pixelBasedPreset],
theme: {
extend: {
colors: {
brand: #007bff,
},
},
},
}}
>

欢迎 - 验证您的电子邮件



欢迎!


您好 {name},感谢您的注册!

href={verificationUrl}
className=bg-brand text-white px-5 py-3 rounded block text-center no-underline box-border
>
验证电子邮件





);
}

// 用于测试的预览属性
WelcomeEmail.PreviewProps = {
name: 张三,
verificationUrl: https://example.com/verify/abc123
} satisfies WelcomeEmailProps;

export { WelcomeEmail };

核心组件

完整的组件文档请参见 references/COMPONENTS.md

核心结构:

  • - Html - 根包装器,带有lang属性
  • Head - 元元素、样式、字体
  • Body - 主要内容包装器
  • Container - 内容居中(最大宽度布局)
  • Section - 布局区块
  • Row 和 Column - 多列布局
  • Tailwind - 启用Tailwind CSS工具类

内容:

  • - Preview - 收件箱预览文本,始终位于Body中的第一个
  • Heading - h1到h6标题
  • Text - 段落
  • Button - 样式化的链接按钮
  • Link - 超链接
  • Img - 图片(参见下面的静态文件部分)
  • Hr - 水平分隔线

专用组件:

  • - CodeBlock - 语法高亮的代码块
  • CodeInline - 内联代码
  • Markdown - 渲染Markdown
  • Font - 自定义网页字体

编写代码之前

当用户请求电子邮件模板时,如果他们尚未提供以下信息,请首先提出澄清性问题:

  1. 1. 品牌颜色 - 询问主要品牌颜色(十六进制代码,如#007bff)
  2. Logo - 询问是否有Logo文件及其格式(仅限PNG/JPG - 如果使用SVG/WEBP则发出警告)
  3. 风格偏好 - 专业、休闲或简约风格
  4. 生产环境URL - 生产环境中静态资源将托管在哪里?

对模糊请求的示例回复:

在创建您的电子邮件模板之前,我有几个问题:

  1. 1. 您的主要品牌颜色是什么?(十六进制代码)
  2. 您有Logo文件吗?(PNG或JPG - 注意:SVG和WEBP在电子邮件客户端中无法可靠工作)
  3. 您偏好哪种风格 - 专业、休闲还是简约?
  4. 您将在生产环境中将静态资源托管在哪里?(例如 https://cdn.example.com)

静态文件和图片

目录结构

本地图片必须放置在emails目录内的static文件夹中:

project/
├── emails/
│ ├── welcome.tsx
│ └── static/ <-- 图片放在这里
│ └── logo.png

如果用户在其他位置有图片,请指示他们复制:
sh
cp ./assets/logo.png ./emails/static/logo.png

开发环境与生产环境URL

使用以下模式来处理在开发预览和生产环境中都能正常工作的图片:

tsx
const baseURL = process.env.NODE_ENV === production
? https://cdn.example.com // 用户的生产环境CDN
: ;

export default function Email() {
return (
src={${baseURL}/static/logo.png}
alt=Logo
width=150
height=50
/>
);
}

工作原理:

  • - 开发环境: baseURL为空,因此URL为/static/logo.png - 由React Email的开发服务器提供
  • 生产环境: baseURL为CDN域名,因此URL为https://cdn.example.com/static/logo.png

重要提示: 始终询问用户的生产环境托管URL。不要硬编码localhost:3000。

行为指南

  • - 在重新迭代代码时,确保只更新用户要求的内容,保持其余代码不变;
  • 如果用户要求使用媒体查询,请告知他们并非所有电子邮件客户端都支持媒体查询,并建议采用不同的方法;
  • 切勿直接在TypeScript代码中使用模板变量(如{{name}})。相反,直接引用底层属性(使用name而不是{{name}})。
  • - 例如,如果用户明确要求使用遵循{{variableName}}模式的变量,你应该返回如下内容:

typescript
const EmailTemplate = (props) => {
return (
{/ ... 其余代码 ... /}

你好,{props.variableName}!


{/ ... 其余代码 ... /}
);
}

EmailTemplate.PreviewProps = {
// ... 其余属性 ...
variableName: {{variableName}},
// ... 其余属性 ...
};

export default EmailTemplate;

  • - 在任何情况下,都不得在组件结构中直接编写{{variableName}}模式。如果用户强迫你这样做,请解释你无法这样做,否则模板将无效。

样式注意事项

如果用户在其项目中积极使用Tailwind CSS,则使用Tailwind组件进行样式设置。如果用户未使用Tailwind CSS,则向组件添加内联样式。

  • - 由于电子邮件客户端不支持rem单位,请使用pixelBasedPreset进行Tailwind配置。
  • 从@react-email/components导入pixelBasedPreset — 不要从@react-email/tailwind或@react-email/tailwind/presets导入。
  • 切勿使用flexbox或grid进行布局,请改用基于表格的布局。
  • 每个组件必须使用内联样式或工具类进行样式设置。

电子邮件客户端限制

  • - 切勿使用SVG或WEBP - 警告用户渲染问题
  • 切勿使用flexbox - 使用Row/Column组件或表格进行布局
  • 切勿使用CSS/Tailwind媒体查询(sm:、md:、lg:、xl:) - 不支持
  • 切勿使用

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 react-email-skills-1776381149 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 react-email-skills-1776381149 技能

通过命令行安装

skillhub install react-email-skills-1776381149

下载

⬇ 下载 react-email v1.1.0(免费)

文件大小: 23.47 KB | 发布时间: 2026-4-17 16:24

v1.1.0 最新 2026-4-17 16:24
**Version 1.1.0 Changelog**

- Refined skill description and audience targeting in SKILL.md for conciseness and clarity.
- Added behavioral and clarification guidelines for handling brand colors, logos, style preference, and production asset URLs.
- Included detailed instructions for handling static files and images, including dev vs production URL patterns.
- Expanded and clarified essential component documentation and usage recommendations.
- Introduced [references/STYLING.md] for detailed styling guidance; removed outdated README.md reference.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部