
sublimesec/render-email-htmlEmail Previewer 是一个轻量级Docker镜像,提供邮件内容在用户端呈现效果的预览功能。其核心用途是模拟各类邮件客户端(如Gmail、Outlook、Apple Mail等)的渲染环境,帮助开发者、测试人员及产品人员直观查看HTML/CSS邮件在不同客户端的实际显示效果,确保邮件格式一致性和兼容性。
通过Docker Hub拉取最新版本镜像:
bashdocker pull emailpreviewer:latest
bashdocker run -d \ --name email-preview \ -p 8080:8080 \ emailpreviewer:latest
-p 8080:8080:将容器内8080端口映射到主机8080端口,用于访问Web服务。--name email-preview:指定容器名称为email-preview。通过-e参数设置环境变量,配置服务行为:
| 环境变量名 | 默认值 | 描述 |
|---|---|---|
PORT | 8080 | 服务监听端口(容器内)。 |
LOG_LEVEL | info | 日志级别,可选值:debug/info/warn/error。 |
CORS_ALLOW_ORIGIN | * | 跨域请求允许的源(Web界面或API调用时使用),如[***]。 |
MAX_EMAIL_SIZE | 5242880 | 最大邮件内容大小(字节),默认5MB。 |
如需持久化存储预览历史记录或加载本地邮件模板,可挂载主机目录到容器内/data路径:
bashdocker run -d \ --name email-preview \ -p 8080:8080 \ -v /local/mail-templates:/data/templates \ # 挂载本地邮件模板目录到容器 -e PORT=80 \ # 自定义服务端口为80 emailpreviewer:latest
如需集成到现有Docker网络(如与邮件发送服务联动),可通过--network指定网络:
bashdocker run -d \ --name email-preview \ --network my-network \ # 加入现有网络 -p 8080:8080 \ emailpreviewer:latest
http://<主机IP>:8080打开Web预览界面。通过HTTP POST请求提交邮件内容,获取JSON格式的预览结果:
bashcurl -X POST http://localhost:8080/api/preview \ -H "Content-Type: text/html" \ -d @"path/to/email.html" # 本地HTML邮件文件
响应示例:
json{ "previewId": "abc123", "clients": { "gmail": "http://localhost:8080/preview/abc123/gmail", // Gmail预览图URL "outlook": "http://localhost:8080/preview/abc123/outlook" // Outlook预览图URL }, "warnings": ["CSS property 'flex' is not supported in Outlook 2016"] // 渲染警告 }
bashdocker run -d \ --name email-preview \ -p 8080:8080 \ -v /opt/email-templates:/data/templates \ -e PORT=8080 \ -e LOG_LEVEL=debug \ -e CORS_ALLOW_ORIGIN="[***]" \ -e MAX_EMAIL_SIZE=*** \ # 10MB --restart unless-stopped \ emailpreviewer:latest
yamlversion: '3.8' services: email-preview: image: emailpreviewer:latest container_name: email-preview restart: unless-stopped ports: - "8080:8080" environment: - PORT=8080 - LOG_LEVEL=info - CORS_ALLOW_ORIGIN="[***]" - MAX_EMAIL_SIZE=5242880 volumes: - /opt/email-templates:/data/templates networks: - mail-dev-network networks: mail-dev-network: driver: bridge
| 参数类别 | 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
| 网络配置 | PORT | 整数 | 8080 | 容器内服务监听端口,需与-p映射的容器端口一致。 |
| 日志配置 | LOG_LEVEL | 字符串 | info | 日志输出级别:debug(详细调试信息)、info(常规运行信息)、warn(警告)、error(错误)。 |
| 安全配置 | CORS_ALLOW_ORIGIN | 字符串 | * | 允许跨域请求的源,多个源用逗号分隔(如"[***]"),*表示允许所有源(生产环境不推荐)。 |
| 性能配置 | MAX_EMAIL_SIZE | 整数 | 5242880(5MB) | 单个邮件内容的最大字节数,超过此值的请求将被拒绝。 |
| 存储配置 | /data/templates | 卷挂载 | - | 本地邮件模板目录挂载点,容器可读取该目录下的HTML文件用于预览。 |


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务