使用 Docker 搭建简易邮件服务器

前言

在现代工作环境中,大多数公司都使用第三方提供的企业邮箱服务,这些服务通常允许用户免费注册并填写企业相关信息即可使用。虽然这些服务满足了大部分公司的基本需求,但在容量方面通常存在一定限制,一旦超过限制就无法继续接收邮件,需要清理邮箱或者升级为付费VIP服务。然而,除了这些选择之外,还有另一种选择:自己搭建邮件服务器。在网络上有一些免费的邮件服务器,可以满足基本的邮件收发需求。接下来,我将介绍一款开箱即用的邮件服务器:poste。

技术要求

在开始操作之前,您需要对以下技术有一定了解:

  1. Docker:近年来流行的容器化技术。虽然人们通常会听到更多有关 Kubernetes 的内容,但我们只需要进行单机部署,因此 Docker 就足够了。
  2. Docker Compose:这是一个进阶的技术,可以用于以服务方式管理容器。
  3. 域名:邮件服务器需要域名进行指向。这是可选配置,通常在公网环境下需要设置。
  4. Linux 环境:需要对 Linux 的基本命令有一定了解。本次我们搭建的环境是在 Linux 下,因此需要了解一些基本的命令。

步骤

  1. 下载邮件服务器的镜像文件

首先,通过 SSH 连接到 Linux 服务器,并执行以下命令将镜像文件拉取到本地:

<code>docker pull analogic/poste.io:latest</code>

如果已经下载过镜像,系统会提示已经是最新版本了。

图片[1]-使用 Docker 搭建简易邮件服务器-山海云端论坛
  1. 启动服务

由于容器中的数据默认是没有持久化的,删除容器后配置信息也会丢失,因此我们需要将 Linux 上的目录映射到容器中,以保留配置信息。

假设我们希望将配置保存在 /usr/data/poste/data 目录下,我们可以执行以下操作:


mkdir -p /usr/data/poste/data
cd /usr/data/poste

然后启动容器。以下命令中涉及到端口映射,请确保映射设置与容器内部的端口一致,以避免后续初始化中出现错误提示:


docker run -d \
    -p 10080:80 -p 10443:443 -p 25:25 -p 110:110 -p 143:143 -p 465:465 -p 587:587 -p 993:993 -p 995:995 -p 4190:4190 \
    -e TZ=Asia/Shanghai \
    -v $PWD/data:/data \
    --name "mymailserver" \
    --restart=always \
    -t analogic/poste.io

参数说明:

  • -d 表示容器在后台执行
  • -p 将容器的端口映射到外部,使得外部可以直接访问服务端口。冒号前是外部访问的端口,冒号后是容器的内部端口
  • -e 设置容器的时区,这里设置成上海
  • -v 将当前目录下的 data 映射到容器的 /data 目录
  • --name 设置容器的名称,我们在对容器进行操作时可以指定这个名称进行
  • --restart=always 容器出现问题或 Docker 服务停掉启动后,该容器会自动重启
  • -t 要启动的 Docker 镜像名

容器启动后,可能需要一些时间,请使用以下命令查看容器的运行状态:

<code>docker ps -a</code>

当容器状态变成 healthy 时,我们就可以访问邮件服务器进行初始化操作了。

  1. 初始化邮件服务器

为了安全起见,我们通过 HTTPS 进行服务的初始化。通过浏览器访问服务:

<code>https://<Linux服务器IP>:20443/admin/install/server</code>

其中 <Linux服务器IP> 是容器部署所在的 Linux 服务器的 IP 地址。

图片[2]-使用 Docker 搭建简易邮件服务器-山海云端论坛

在配置时可能会出现一些警告,由于我们映射的端口不是默认的,所以会提示探测不通,但这不会影响使用。初始化完成后,会自动进入配置页面。

图片[3]-使用 Docker 搭建简易邮件服务器-山海云端论坛

此外,我们还可以访问邮箱页面:

<code>https://<Linux服务器IP>:20443/webmail/</code>
图片[4]-使用 Docker 搭建简易邮件服务器-山海云端论坛
  1. 测试发送接收邮件

登录邮箱页面后,虽然功能有些简陋,但基本的收发和查看邮件功能还是可以正常使用的。

我们可以发送一封测试邮件:

图片[5]-使用 Docker 搭建简易邮件服务器-山海云端论坛

发送邮件后,我们可以直接在当前页面收到发送过来的邮件。

写在末尾

这样,我们就完成了邮件服务器的搭建。是不是觉得很简单,轻轻松松就能搭建好一个简单易用的邮件服务器呢?后续我将继续介绍如何配置邮件服务器,并确保可以接收到其他邮箱发送过来的邮件。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容