
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
CZERTAINLY-Email-Notification-Provider 是商业开源项目 CZERTAINLY 的一部分,作为实现特定功能组的连接器(Connector),专注于提供邮件通知能力。该镜像实现以下功能组(Function Group)和类型(Kind):
| 功能组(Function Group) | 类型(Kind) |
|---|---|
Notification Provider | EMAIL |
其核心用途是通过邮件方式发送通知,集成于 CZERTAINLY 平台中,处理各类事件触发的邮件通知需求(如证书状态变更、到期提醒等)。
适用于 CZERTAINLY 平台环境中需要通过邮件传递事件通知的场景,例如:
镜像名称格式:czertainly/czertainly-email-notification-provider:tagname
通过以下命令拉取指定版本镜像:
bashdocker pull docker.xuanyuan.run/czertainly/czertainly-email-notification-provider:tagname
容器通过环境变量进行配置,详细参数如下:
| 变量名 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
JDBC_URL | 数据库访问 JDBC URL | 是 | N/A |
JDBC_USERNAME | 数据库访问用户名 | 是 | N/A |
JDBC_PASSWORD | 数据库访问密码 | 是 | N/A |
DB_SCHEMA | 数据库 schema | 否 | emailnp |
PORT | 服务暴露端口 | 否 | 8080 |
JAVA_OPTS | Java 运行时自定义参数 | 否 | N/A |
SMTP_HOST | SMTP 服务器地址 | 是 | N/A |
SMTP_PORT | SMTP 服务器端口 | 否 | 587 |
SMTP_USERNAME | SMTP 认证用户名(若启用认证) | 否 | N/A |
SMTP_PASSWORD | SMTP 认证密码(若启用认证) | 否 | N/A |
SMTP_AUTH | 是否启用 SMTP 认证 | 否 | true |
SMTP_TLS | 是否启用 SMTP TLS 加密 | 否 | true |
创建 Email Notification Provider 实例时,需配置以下属性:
| 属性名称 | 描述 | 内容类型 |
|---|---|---|
| Sender email address | 发送通知的***地址 | STRING |
| Subject | 邮件主题 | STRING |
| Content Template | 邮件内容 HTML 模板 | CODEBLOCK |
变量替换说明
主题(Subject)和内容模板(Content Template)支持变量替换,变量格式为 ${variable},运行时会被通知请求中的数据替换。
内容模板示例:
html<h3>证书状态变更通知</h3> <p>证书信息如下:</p> <ul> <li>主题:${notificationData.subjectDn}</li> <li>序列号:${notificationData.serialNumber}</li> <li>颁发者:${notificationData.issuerDn}</li> </ul> <button onclick="location.href='https://yourdomain.com/certificates/${notificationData.certificateUuid}'" type="button">查看证书</button>
变量替换逻辑:
通知请求数据示例:
json{ "recipients": [{"name": "John Doe", "email": "john.doe@example.com"}], "eventType": "certificate_status_changed", "notificationData": { "subjectDn": "CN=test", "serialNumber": "4a25c46b33ee052d242023f5dfaaafd3694858a4", "issuerDn": "CN=issuer", "certificateUuid": "7de49ef9-8244-4e8f-95b8-82205ae0ad48" } }
模板中的 ${notificationData.subjectDn} 等变量会被替换为对应值,生成最终邮件内容。
1. docker run 命令示例
bashdocker run -d \ --name email-notification-provider \ -p 8080:8080 \ -e JDBC_URL="jdbc:postgresql://postgres-host:5432/emailnpdb" \ -e JDBC_USERNAME="dbuser" \ -e JDBC_PASSWORD="dbpass" \ -e SMTP_HOST="smtp.example.com" \ -e SMTP_PORT="587" \ -e SMTP_USERNAME="smtpuser@example.com" \ -e SMTP_PASSWORD="smtppass" \ docker.xuanyuan.run/czertainly/czertainly-email-notification-provider:tagname
2. docker-compose 配置示例
yamlversion: "3.8" services: email-notification-provider: image: docker.xuanyuan.run/czertainly/czertainly-email-notification-provider:tagname container_name: email-notification-provider ports: - "8080:8080" environment: - JDBC_URL=jdbc:postgresql://postgres-host:5432/emailnpdb - JDBC_USERNAME=dbuser - JDBC_PASSWORD=dbpass - DB_SCHEMA=emailnp - SMTP_HOST=smtp.example.com - SMTP_PORT=587 - SMTP_USERNAME=smtpuser@example.com - SMTP_PASSWORD=smtppass - SMTP_AUTH=true - SMTP_TLS=true restart: unless-stopped
启用应用调试日志
设置环境变量:
bashLOGGING_LEVEL_COM_CZERTAINLY=DEBUG
启用邮件发送调试日志(SMTP 过程)
设置环境变量:
bashSPRING_MAIL_PROPERTIES_MAIL_DEBUG=true
实现 Notification Provider 接口,详细接口定义及端点说明参见 https://github.com/CZERTAINLY/CZERTAINLY-Interfaces%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务