wodby/opensmtpdwodby/opensmtpd容器镜像是基于OpenSMTPD的轻量级邮件传输代理(MTA)容器化实现,旨在简化SMTP服务器的部署与管理。OpenSMTPD是一款遵循RFC标准、设计简洁的邮件传输软件,该镜像将其封装为容器,支持快速启动、环境隔离和灵活配置,适用于个人服务器、开发测试环境及小型企业邮件服务。
项目源码及更多细节请参考:[***]
通过以下命令快速启动基础SMTP服务(默认配置可能仅支持本地测试,生产环境需自定义配置):
bashdocker run -d \ --name opensmtpd \ -p 25:25 \ -v $(pwd)/smtpd.conf:/etc/smtpd/smtpd.conf \ wodby/opensmtpd
说明:
-v $(pwd)/smtpd.conf:/etc/smtpd/smtpd.conf用于挂载自定义配置文件,覆盖默认配置。
创建docker-compose.yml文件,集成到容器化应用架构中:
yamlversion: '3.8' services: opensmtpd: image: wodby/opensmtpd container_name: opensmtpd ports: - "25:25" # SMTP标准端口 - "587:587" # 提交端口(可选,用于客户端提交) volumes: - ./smtpd.conf:/etc/smtpd/smtpd.conf:ro # 只读挂载配置文件 - ./certs:/etc/ssl/smtpd:ro # 挂载TLS证书(如需启用加密) restart: unless-stopped environment: - TZ=Asia/Shanghai # 设置时区
OpenSMTPD的核心配置通过smtpd.conf文件定义,容器默认配置可能仅适用于基础场景,生产环境需根据需求自定义。典型配置项包括:
listen on all port 25)action "local" mbox alias <aliases>)tls on key "/etc/ssl/smtpd/server.key" cert "/etc/ssl/smtpd/server.crt")accept from any for domain "example.com" deliver to mbox)配置文件示例(基础本地投递):
conf# 监听所有网络接口的25端口 listen on all port 25 # 定义本地投递动作(存储到mbox格式邮件文件) action "local" mbox alias <aliases> # 接受本地用户邮件并投递 accept for local action "local" # 接受转发到本地域名的邮件并投递 accept for domain "example.com" action "local"
详细配置语法请参考OpenSMTPD官方文档及镜像GitHub仓库说明。
为避免容器重启后配置丢失,建议通过-v参数挂载以下目录:
/etc/smtpd/:存放配置文件(如smtpd.conf、aliases)/var/spool/mail/:存放本地用户邮件(mbox格式)/etc/ssl/smtpd/:存放TLS证书和密钥(如需启用加密)docker logs opensmtpd查看服务运行日志,排查邮件传输问题| 功能 | 描述 |
|---|---|
| SMTP协议支持 | 兼容SMTPv4,支持EHLO、STARTTLS等扩展命令 |
| 邮件路由 | 支持基于域名、用户、IP的灵活路由规则 |
| 本地投递 | 支持mbox/maildir格式邮件存储 |
| 远程转发 | 支持将邮件转发至其他SMTP服务器 |
| 别名映射 | 通过aliases文件实现用户邮件别名 |
| 访问控制 | 基于IP、域名、用户的访问权限控制 |
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务