一个基于Poste.io的个人邮箱的实现

Step 1: 配置DNS

已有域名quanyuan.me,name provider是Cloudflare,因此接下来的操作都在CF上完成。

由于我的目的是实现一个个人邮箱,最终的效果类似于 contact@quanyuan.me,因此DNS记录配置如下:

A 记录

  • 目的:将域名映射到邮件服务器的 IP 地址。
  • 记录类型:A
  • 名称mail.quanyuan.me
  • 内容:邮件服务器的 IP 地址。

MX 记录

  • 目的:指定处理 quanyuan.me 域名电子邮件的服务器。
  • 记录类型:MX
  • 名称quanyuan.me
  • 内容:指向我的邮件服务器地址,例如 mail.quanyuan.me(需要先有一个指向您邮件服务器的 A 记录)。
  • 优先级:0 – 65535,通常设置为 10(较低的数字表示较高的优先级)。

💡 注意这里保存好之后提示我MX记录指向的A记录是经过CF代理的,经过查阅发现似乎并不支持。

邮件服务(如 SMTP、IMAP、POP3)不支持 Cloudflare 的 HTTP/HTTPS 代理服务,因此对于指向邮件服务器的 DNS 记录,您需要确保 Cloudflare 代理被禁用,使其直接暴露邮件服务器的 IP 地址。"

因此需要回到前面的A记录disable掉proxy,保存后报错消失。

SPF 记录

  • 目的:指定哪些邮件服务器被允许发送 quanyuan.me 的邮件。
  • 记录类型:TXT
  • 名称quanyuan.me
  • 内容:例如 v=spf1 mx -all(表示只有 MX 记录中指定的服务器被允许发送邮件)。

DKIM 记录

  • 添加 DKIM 记录。需要从邮件服务器(如 Poste.io)中获取这个值。DKIM 记录帮助验证邮件内容的真实性和完整性。

DMARC 记录

  • 最后,添加 DMARC 记录。这个记录使用 SPF 和 DKIM 的结果来指导如何处理不符合这些标准的邮件。

Step 2: 服务器端配置 (使用Docker快速部署Poste.io)

安装 Docker (如果你还没有Docker…

  1. 连接到您的服务器:使用 SSH 连接到服务器。
  2. 安装 Docker
    • 更新软件包列表:sudo apt update
    • 安装 Docker:sudo apt install docker.io
  3. 启动 Docker 服务并使其在启动时自动运行
    • 启动 Docker 服务:sudo systemctl start docker
    • 设置 Docker 开机自启:sudo systemctl enable docker

部署 Poste.io

  1. 拉取 Poste.io 的 Docker 镜像
    • 使用命令:docker pull analogic/poste.io
  2. 运行 Poste.io 容器
    • 在理想的位置新建一个目录,这里我是直接在根目录新建了一个/mail目录
    • 使用类似于以下的命令来运行 Poste.io 容器(注意找个地方需要开放对应的端口):
      Docker
          docker run \
              -p 25:25 \
              -p 80:80 \
              -p 443:443 \
              -p 110:110 \
              -p 143:143 \
              -p 465:465 \
              -p 587:587 \
              -p 993:993 \
              -p 995:995 \
              -e TZ=Asia/Shanghai \
              -v /mail/data:/data \
              -t analogic/poste.io
    • 这将启动 Poste.io 并将必要的端口映射到你的服务器。

💡 这里我在第一次配置的时候遇到了端口占用问题,经查询是一个名为sendmail的服务占用了587端口导致docker拉起失败。

解决方案

  1. 停止 Sendmail 服务:

    bash
        sudo service sendmail stop
  2. 禁用 Sendmail 服务(可选,但建议这样做,以防服务在重启后自动启动):

    bash
        sudo systemctl disable sendmail
  3. 重新运行 Poste.io 容器
    由于这个域名上还部署了我的另一个Web项目(没错就是我的毕业论文的Demo)因此还需要避开443端口和80端口

    Docker
        docker run \
        -p 25:25 \
        -p 8080:80 \
        -p 4433:443 \
        -p 110:110 \
        -p 143:143 \
        -p 465:465 \
        -p 587:587 \
        -p 993:993 \
        -p 995:995 \
        -e TZ=Asia/Shanghai \
        -v /mail/data:/data \
        -h mail.quanyuan.me \
        -t analogic/poste.io

配置 Poste.io

  • 访问您服务器的 IP 地址或域名(如果配置了)在浏览器中,您应该能够看到 Poste.io 的登录界面。
  • 初次访问时,您需要设置管理员账户和密码。

  • 接下来就是愉快的Web界面配置环节了,这个部分就很轻松了。

总体来看使用poste.io搭建这个个人邮箱还是相当轻松的,接下来我会继续体验一段时间看看有没有什么后续问题。


评论

《“一个基于Poste.io的个人邮箱的实现”》 有 1 条评论

  1. 这个方法对云服务器要求是开放25端口,目前主流厂商为了维护 IP 和域声誉均会block出站方向25端口,因此需要提前注意这一点。在这种情况下,需要通过特定的流程来请求解除这种限制。

    检测方法:
    telnet smtp.example.com 25 (例如 smtpdm.aliyun.com)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注