
rnwood/smtp4devsmtp4dev 是一个轻量级虚拟SMTP服务器镜像,专为开发和测试环境设计。它接收所有发送至其的电子邮件但不实际投递,提供Web界面和API用于查看、管理接收的邮件,帮助开发者在不影响真实邮件系统的情况下测试邮件功能。
基本运行配置(默认端口与数据持久化):
bashdocker run -d \ --name smtp4dev \ -p 3000:80 \ # Web界面端口映射(主机:容器) -p 25:25 \ # SMTP服务端口映射 -v smtp4dev-data:/app/data \ # 挂载数据卷保存邮件 rnwood/smtp4dev:latest
自定义端口配置示例:
bashdocker run -d \ --name smtp4dev \ -p 8080:8080 \ # 自定义Web端口 -p 587:587 \ # 自定义SMTP端口(如使用TLS提交端口) -v ./smtp-data:/app/data \ # 本地目录挂载 -e SMTP_PORT=587 \ # 设置容器内SMTP端口 -e WEB_PORT=8080 \ # 设置容器内Web端口 rnwood/smtp4dev:latest
创建docker-compose.yml文件:
yamlversion: '3.8' services: smtp4dev: image: rnwood/smtp4dev:latest container_name: smtp4dev restart: unless-stopped ports: - "3000:80" # Web界面访问端口 - "25:25" # SMTP服务端口 volumes: - smtp4dev-data:/app/data # 命名卷存储数据 environment: - LOG_LEVEL=Info # 日志级别(Debug/Info/Warn/Error) - API_ENABLED=true # 启用API功能 networks: - dev-network # 可选:连接到应用网络 volumes: smtp4dev-data: # 持久化邮件数据的命名卷 networks: dev-network: # 可选:与其他开发服务共享网络
启动服务:
bashdocker-compose up -d
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
SMTP_PORT | SMTP服务监听端口 | 25 |
WEB_PORT | Web界面与API监听端口 | 80 |
API_ENABLED | 是否启用API接口 | true |
DATA_DIRECTORY | 邮件数据存储路径 | /app/data |
LOG_LEVEL | 日志输出级别 | Info |
MAX_EMAILS | 最大存储邮件数量(0为无限制) | 0 |
SMTP_AUTH_REQUIRED | 是否要求SMTP认证 | false |
容器启动后,通过浏览器访问 http://localhost:3000(或映射的Web端口),可查看:
启用API后可通过HTTP请求操作邮件数据:
获取所有邮件列表:
GET http://localhost:3000/api/emails
获取指定邮件详情({id}为邮件ID):
GET http://localhost:3000/api/emails/{id}
删除所有邮件:
DELETE http://localhost:3000/api/emails
完整API文档可通过Web界面的"API"选项卡查看。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务