SendGrid-Mock是一个轻量级服务器镜像,用于模拟SendGrid API服务,主要面向开发环境。它允许开发者在不依赖真实SendGrid服务的情况下,测试邮件发送、接收和管理功能,有效降低开发过程中的测试成本和风险。
发送邮件
支持通过POST /v3/mail/send端点模拟邮件发送请求,接收符合SendGrid API格式的请求数据。
检索已发送邮件
通过GET /api/mails端点获取已发送邮件列表,支持多条件组合过滤:
GET /api/mails?to=***(精确匹配收件人***)GET /api/mails?subject=The subject(精确匹配主题)GET /api/mails?subject=%subject%(包含指定字符串,使用%作为通配符)GET /api/mails?dateTimeSince=2020-12-06T10:00:00Z(按ISO-8601格式筛选指定时间之后的邮件)删除已发送邮件
通过DELETE /api/mails端点删除已发送邮件,支持收件人过滤:
DELETE /api/mails?to=***(仅删除指定收件人的邮件)基本认证支持
通过环境变量AUTHENTICATION配置静态内容的基本认证,格式为user1:passwordForUser1;user2:passwordForUser2(多用户用;分隔)。
API密钥认证
通过环境变量API_KEY配置API端点的认证密钥,仅对API请求生效。
请求速率限制
支持对API服务和SSL服务配置速率限制,通过以下环境变量控制:
RATE_LIMIT_ENABLED:是否启用速率限制,可选值true或false(默认false)RATE_LIMIT_WINDOW_IN_MS:速率限制时间窗口(毫秒),默认60000RATE_LIMIT_MAX_REQUESTS:时间窗口内允许的最大请求数,默认100SSL_RATE_LIMIT_ENABLED:SSL服务速率限制开关,默认falseSSL_RATE_LIMIT_WINDOW_IN_MS:SSL服务时间窗口(毫秒),默认60000SSL_RATE_LIMIT_MAX_REQUESTS:SSL服务时间窗口内最大请求数,默认100邮件历史保留时间
通过环境变量MAIL_HISTORY_DURATION配置已发送邮件的保留时间,使用ISO-8601时长格式(如PT24H表示24小时),默认保留24小时。
事件通知支持
通过环境变量EVENT_DELIVERY_URL配置事件回调URL,当邮件发送时,会向该URL发送delivered事件通知(符合SendGrid事件跟踪格式)。
适用于需要集成SendGrid邮件功能的应用开发与测试场景,可在不调用真实SendGrid服务的情况下,验证邮件发送逻辑、测试收件人处理、调试邮件内容格式等,避免开发环境中发送真实邮件造成的资源浪费或信息泄露。
通过Docker命令直接启动容器:
shelldocker run -it -p 3000:3000 -e "API_KEY=sendgrid-api-key" ghashange/sendgrid-mock:1.13.0
启动后,可通过http://localhost:3000访问管理界面,API端点为http://localhost:3000/v3/mail/send。
如需启用SSL(基于Let's Encrypt),需配置域名和***:
shelldocker run -it -p 3000:3000 \ -e "API_KEY=sendgrid-api-key" \ -e "CERT_DOMAINNAMES=[你的域名]" \ -e "CERT_EMAIL=[你的***地址]" \ ghashange/sendgrid-mock:1.13.0
| 变量名 | 描述 | 格式示例 | 默认值 |
|---|---|---|---|
API_KEY | API端点认证密钥 | 任意字符串 | 无 |
AUTHENTICATION | 静态内容基本认证用户密码对 | user1:pass1;user2:pass2 | 无 |
RATE_LIMIT_ENABLED | 是否启用API速率限制 | true/false | false |
RATE_LIMIT_WINDOW_IN_MS | API速率限制时间窗口(毫秒) | 60000(1分钟) | 60000 |
RATE_LIMIT_MAX_REQUESTS | 时间窗口内API最大请求数 | 100 | 100 |
SSL_RATE_LIMIT_ENABLED | 是否启用SSL服务速率限制 | true/false | false |
SSL_RATE_LIMIT_WINDOW_IN_MS | SSL速率限制时间窗口(毫秒) | 60000 | 60000 |
SSL_RATE_LIMIT_MAX_REQUESTS | 时间窗口内SSL最大请求数 | 100 | 100 |
MAIL_HISTORY_DURATION | 邮件历史保留时间(ISO-8601时长格式) | PT12H(12小时) | PT24H |
EVENT_DELIVERY_URL | 邮件发送事件回调URL(接收delivered事件) | [***] | 无 |
CERT_DOMAINNAMES | SSL证书域名(启用SSL时必填) | your-domain.com | 无 |
CERT_EMAIL | SSL证书注册***(启用SSL时必填) | *** | 无 |
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速