轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
wildduck

astzweig/wildduck

astzweig

Docker Wildduck 是将 nodemailer/wildduck 邮件服务器作为 Docker 服务运行的镜像,支持 IMAP、SMTP 协议,可通过环境变量配置,提供 API 接口,适用于搭建功能完善的邮件服务器,支持 SSL/TLS 加密和 StartTLS,需配合 Redis 和 MongoDB 使用。

2 次收藏下载次数: 0状态:社区镜像维护者:astzweig仓库类型:镜像最近更新:3 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

中文简介
标签列表
镜像标签列表与下载命令
轩辕镜像,快一点,稳很多。
点击查看

Docker Wildduck

获取 https://github.com/nodemailer/wildduck 邮件服务器作为 Docker 服务。

本项目是 Astzweig 社会责任计划的一部分。

目录

  • 使用方法
    • 从源码构建
    • 从Docker Hub获取
  • 环境变量
    • 通用
    • Wildduck API
    • API配置文件
    • Wildduck IMAP
    • Wildduck 出站SMTP
    • 构建参数
  • 开发决策
  • 路线图
  • 替代方案
  • 许可证

使用方法

有多种运行此容器的方式,经验丰富的用户还有更多选择。对于急于使用的用户,我们准备了一些示例配置:

  • 从源码构建
  • 从Docker Hub获取

两种方式都将得到一个功能齐全的邮件服务器,根据配置不同,它将监听IMAP端口(143)和提交端口(587),如果启用SSL并提供有效密钥,则监听IMAPS端口(993)和SMTPS端口(465)。

从源码构建

在计算机/服务器上克隆此仓库,进入克隆的仓库文件夹,根据需要编辑 https://raw.githubusercontent.com/astzweig/docker-wildduck/master/docker-compose.yml。

bash
$ git clone https://github.com/astzweig/docker-wildduck.git
$ cd docker-wildduck
$ vi docker-compose.yml

至少应替换该文件中的变量值。之后只需运行:

bash
$ docker-compose up -d mail

从Docker Hub获取

使用 curl 或 wget 将提供的 https://raw.githubusercontent.com/astzweig/docker-wildduck/master/docker-compose.hub.yml 文件内容复制到服务器的任意位置:

bash
$ curl -o 'docker-compose.yml' https://raw.githubusercontent.com/astzweig/docker-wildduck/master/docker-compose.hub.yml

 - 或者 -

$ wget -O 'docker-compose.yml' https://raw.githubusercontent.com/astzweig/docker-wildduck/master/docker-compose.hub.yml

之后只需运行:

bash
$ docker-compose up -d mail

环境变量

下表显示了可用于修改容器构建或运行时行为的所有变量。粗体字体表示为了容器正常工作,您必须提供值。斜体字体表示该设置可针对每个电子邮件账户单独覆盖。

通用

名称含义
FQDNDocker主机服务器的完全限定域名。了解什么是 FQDN 很重要。
MAIL_DOMAIN希望Wildduck接收邮件的第一个域名。创建用户且未提供域名时,这也将是标准域名。默认值:FQDN提供的值
PRODUCT_NAME与第三方通信时用于宣传电子邮件服务的名称,例如在SMTP HELO中。默认值:Wildduck Mail
TLS_KEY容器内用于所有Wildduck服务的私有SSL密钥路径。如果未提供值,将禁用SSL(IMAPS、SMTPS等)。
TLS_CERT用于所有Wildduck服务的公共完整链SSL密钥路径。
REDIS_HOSTRedis的连接URL。默认值:redis://redis:6379/8
MONGODB_HOSTMongoDB的连接URL。默认值:mongodb://mongo:27017/wildduck
GRAYLOG_HOST_PORTGraylog服务器的主机名(或IP地址)和端口,例如graylog:***。如果设置,将启用Graylog日志记录。
ENABLE_STARTTLS启用IMAP和SMTP服务器的StartTLS功能。默认值:false
USE_OWN_SETTINGS如果设置为true,启动脚本不会覆盖任何邮件服务配置文件中的任何值。如果您自己提供所有配置文件,这很有用。默认值:false

Wildduck API

名称含义
API_ENABLE启用Wildduck API。默认值:true
API_USE_HTTPS为API启用SSL。通常,如果使用反向代理,您可能需要禁用它。默认值:false
API_URLAPI从Docker外部可访问的URL。例如,'[***]
API_TOKEN_SECRETAPI接受调用所需的令牌(通过HTTP头(X-ACCESS-TOKEN)或URL参数(?accessToken=...)提供)。将此变量留空或不定义可能是危险的,因为任何人都可以进行API调用(从而创建用户等)。只有知道自己在做什么的用户才应将此选项留空。

API配置文件

由于Wildduck API支持双因素(2fa)身份验证,它还支持应用专用密码。生成应用专用密码时,API会自动生成所谓的Apple配置文件。这是一个允许iOS和macOS设备自动设置账户(例如在这种情况下是电子邮件账户)的文件。以下变量可用于配置这些配置文件的元数据。

名称含义
CONFIGPROFILE_ID配置文件的ID。根据规范,是反向DNS风格的标识符。默认值:FQDN的顶级域和域名的反向顺序
CONFIGPROFILE_DISPLAY_NAME生成的iOS移动配置的名称。默认值:$PRODUCT_NAME
CONFIGPROFILE_DISPLAY_ORGANIZATION提供电子邮件服务的组织名称。默认值:Unknown
CONFIGPROFILE_DISPLAY_DESC配置文件内容的描述。甚至可以是给移动用户的通知。'{email}'将替换为相应的电子邮件地址。默认值:Install this profile to setup {email}
CONFIGPROFILE_ACCOUNT_DESC配置文件设置的账户描述。'{email}'的替换方式与'CONFIGPROFILE_DISPLAY_DESC'相同。默认值:{email}

Wildduck IMAP

名称含义
IMAP_PROCESSES要启动的IMAP进程数。默认值:2
IMAP_RETENTIONTrash或Junk文件夹中的邮件自动删除前的天数。默认值:4

Wildduck 出站SMTP

名称含义
ENABLE_SMTP_SEND_LATER允许Date头中包含未来日期的邮件稍后发送。如果设置为false,传入的邮件将立即发送,无论Date头中设置的未来日期如何。默认值:true

构建参数

这些变量可用于定义容器中使用的服务版本。它们仅更改构建时行为。

名称含义
SCRIPTS_DIR脚本文件夹在容器内的上传路径。默认值:'/root/scripts'
INSTALL_DIR组件(Wildduck、Haraka等)在容器内的安装路径。默认值:'/var/nodemailer'
WILDDUCK_GIT_REPOhttps://github.com/nodemailer/wildduck的git仓库URL(或您的分支)。默认值:'https://github.com/nodemailer/wildduck.git'
WILDDUCK_GIT_CID要从Wildduck git仓库检出的git提交ID或分支名称。默认值:'master'
HARAKA_VERSION要下载和使用的https://github.com/haraka/Haraka版本。默认值:'2.8.21'
HARAKA_WD_PLUGIN_GIT_REPOhttps://github.com/haraka/Haraka的https://github.com/nodemailer/haraka-plugin-wildduck的git仓库URL(或您的分支)。默认值:'https://github.com/nodemailer/haraka-plugin-wildduck'
HARAKA_WD_PLUGIN_GIT_CID要从Haraka的Wildduck插件git仓库检出的git提交ID或分支名称。默认值:'master'
ZONEMTA_GIT_REPOhttps://github.com/zone-eu/zone-mta-template的git仓库URL(或您的分支)。默认值:'https://github.com/zone-eu/zone-mta-template.git'
ZONEMTA_GIT_CID要从ZoneMTA git仓库检出的git提交ID或分支名称。默认值:'master'
ZONEMTA_WD_PLUGIN_GIT_REPOhttps://github.com/zone-eu/zone-mta-template的https://github.com/nodemailer/zonemta-wildduck的git仓库URL(或您的分支)。默认值:'https://github.com/nodemailer/zonemta-wildduck.git'
ZONEMTA_WD_PLUGIN_GIT_CID要从ZoneMTA的Wildduck插件git仓库检出的git提交ID或分支名称。默认值:'master'

开发决策

  • 我们将使用shell脚本来运行命令,而不是在Dockerfile中编写所有内容。我们希望构建阶段的脚本形成一个序列,因此我们定义了包含两位数字排序前缀的脚本命名方案。
  • 不打算单独执行的脚本以下划线开头。它们不会移出容器内的脚本文件夹,并且未设置执行位。
  • 打算在运行的容器中作为可执行文件的脚本将位于名为'bin'的子文件夹中。它们可以有任何名称,带或不带扩展名。它们将被移动到系统路径之一。
  • 只有一个'entrypoint.sh'脚本,它是容器的默认命令。
  • 容器需要三个组件才能运行(Wildduck、Haraka和ZoneMTA)。每个组件必须先安装,然后在第二步配置,第三步启动。我们为每个组件编写一个组件脚本,包含上述两个步骤的函数:configure_{service}函数和start_{service}函数。为了利用Docker镜像层缓存,我们在单个BUILD脚本中实现每个组件的安装步骤。

路线图

  • 提供预安装了 https://github.com/nodemailer/wildduck 项目提供的https://github.com/nodemailer/wildduck/tree/master/setup所安装服务的docker容器。
  • 提供使用环境变量配置docker容器的脚本。
  • 为容器中的不同服务创建不同的用户。
  • 创建更好的管理工具,如CLI用户管理工具。

替代方案

在开始构建此镜像之前,我们寻找了替代方案,发现了 https://hub.docker.com/r/houlagins/wildduck/ 和 https://hub.docker.com/r/hechengjin/mailserver/ 的容器。我们仍然决定开发自己的解决方案,因为它们都没有提供构建文件或相应的代码仓库。而且(对某些人来说可能不太重要)它们都没有提供有用的文档。

许可证

  • 根据 EUPL 许可。
  • 徽标:Duck by Milky - Digital innovation from the Noun Project。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 wildduck 镜像标签

docker pull docker.xuanyuan.run/astzweig/wildduck:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull astzweig/wildduck:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
astzweig/wildduck
教程轩辕镜像功能与使用教程
定价查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像

高速镜像下载 · 在线技术支持 · 99.95% SLA 保障

50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障
商务合作:点击复制邮箱
用户协议·隐私政策·©2024-2026 源码跳动
用户协议·隐私政策©2024-2026 杭州源码跳动科技有限公司商务合作:点击复制邮箱

更多 wildduck 镜像推荐

nodemailer/wildduck logo

nodemailer/wildduck

nodemailer
WildDuck是一个可扩展的无单点故障(no-SPOF) IMAP/POP3邮件服务器Docker镜像,使用分布式MongoDB作为后端存储,旨在提供高可用性和可扩展性的邮件服务。
5 次收藏10万+ 次下载
1 年前更新

查看更多 wildduck 相关镜像