EmailWidget - 强大的邮件组件库¶
✨ 特性¶
- 小巧轻量: 快速安装,无复杂依赖(小于 1MB)
- 易于使用: 清晰简单的 API,几行代码就能创建漂亮的邮件模板然后快速发送
- 完整文档: 项目拥有完整的文档和类型注解,在 IDE 中能获得全面的提示
- 丰富组件: 目前包含 12 个漂亮的展示组件,所有组件均符合 Fluent 风格,可在下方查看
- 全面测试: 核心的功能经过完整的测试,确保项目可用
- 完全免费: 项目使用 MIT 开源协议,您可以随意在任何商业项目中使用
✨ 为什么选择 EmailWidget?¶
想发警告或者日志到邮箱,但是不会美化,样式太丑?使用 EmailWidget 来打通发送邮件的最后一步!
想要一个漂亮的邮件模版,但是不会 HTML/CSS 或者干脆懒得写?网上的模版删删改改复用困难而且不支持移动端?那么欢迎来试试 EmailWidget,可复用,响应式,完整的类型提示,全面的文档,轻量级的邮箱组件库,祝您快速搭建自己的报告模版
EmailWidget 是专为 Python 开发者设计的邮件组件库,让你用几行代码就能创建出美观的 HTML 邮件报告而不需要了解 HTML 和邮箱的 CSS 的细节。项目经过 600+个测试用例 验证,核心代码 100% 测试覆盖, 确保稳定可靠。
下面的邮箱样式,只需要 3 行代码 就能创建,生成出来的内容就能直接当做邮件发送,接受者也能看到美观的邮件
Python
from email_widget import Email
email = Email("欢迎使用EmailWidget")
email.add_card("Python版本", "您需要Python3.10或以上才能使用EmailWidget", metadata={"Python版本": "3.10+"})
email.add_quote("EmailWidget是一个用于构建和发送HTML邮件的Python库。", "EmailWidget")
email.export_html('welcome_email.html')
"🚀 快速开始"¶
📦 安装¶
30秒创建专业报告¶
Python
from email_widget import Email, TextWidget, ProgressWidget
from email_widget.core.enums import TextType, ProgressTheme
# 创建邮件
email = Email("📊 业务报告")
# 添加标题
email.add_widget(
TextWidget()
.set_content("季度业绩总结")
.set_type(TextType.TITLE_LARGE)
)
# 添加进度指标
email.add_widget(
ProgressWidget()
.set_value(92)
.set_label("目标完成率")
.set_theme(ProgressTheme.SUCCESS)
)
# 导出HTML
email.export_html("report.html")
📊 业务报告
季度业绩总结
目标完成率
🎪 使用场景¶
🎨 组件画廊¶
基础组件¶
Python
# 8种预设样式
email.add_widget(
TextWidget()
.set_content("大标题")
.set_type(TextType.TITLE_LARGE)
)
email.add_widget(
TextWidget()
.set_content("章节标题")
.set_type(TextType.SECTION_H2)
)
email.add_widget(
TextWidget()
.set_content("正文内容,支持多行文本和自动格式化。")
.set_type(TextType.BODY)
)

高级组件¶
Python
# 线性进度条
email.add_widget(
ProgressWidget()
.set_value(75)
.set_label("项目进度")
.set_theme(ProgressTheme.PRIMARY)
)
# 圆形进度条
email.add_widget(
CircularProgressWidget()
.set_value(85)
.set_label("完成率")
)

📖 文档导航¶
🤝 社区与支持¶
获取帮助¶
- 📚 文档中心: 完整文档
- 🐛 问题反馈: GitHub Issues
- 💬 讨论交流: GitHub Discussions
- 📧 邮件支持: 271374667@qq.com
参与贡献¶
推荐使用 uv 作为项目管理和开发的包管理工具
Bash
# 1. 克隆项目
git clone https://github.com/271374667/EmailWidget.git
# 2. 安装开发环境
uv sync
# 3. 运行测试
uv run pytest
# 4. 提交更改
git commit -m "Feature: 添加新功能"
社交媒体¶
- GitHub: 271374667/EmailWidget
- Bilibili: Python调包侠
- Email: 271374667@qq.com
📄 许可证¶
本项目采用 MIT License 开源协议。