前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >邮局系列教程 | 使用poste.io部署自己的邮局

邮局系列教程 | 使用poste.io部署自己的邮局

作者头像
夜梦星尘
发布2024-09-12 11:15:00
2940
发布2024-09-12 11:15:00
举报
文章被收录于专栏:夜梦星尘的折腾日记

1. 前言

Posteio 是一个轻量级的开源邮件服务器程序,旨在简化邮件系统的部署和管理。它支持常见的邮件协议(如 SMTP 和 IMAP),并具有内置的反垃圾邮件、反病毒功能,确保邮件通信的安全性和稳定性。Posteio 易于安装,支持 Docker 容器化部署,非常适合中小型企业和个人用户使用,既能够满足基本的邮件发送与接收需求,又能够通过扩展自定义功能来提升系统的灵活性。

官网:https://poste.io/

文档:Poste.io documentation

2. 准备

部署邮局必须使用25端口开放的服务器,并且夜梦强烈建议你使用支持rDNS的服务器。邮局服务器的准备工作可以看夜梦的这篇文章:邮局系列教程 | Racknerd开启rDNS(PTR反向解析) | 小白向教程

安装docker与docker-compose:【docker】在服务器上安装docker/docker-compose

部署邮局必须使用域名(域名邮箱没有域名那就不叫域名邮箱了)。夜梦推荐在 namesilo 上进行注册,注册时可以使用 1 美元优惠码:yemeng。

由于posteio占用内存较多(如果开启病毒监测和反垃圾邮件的话),夜梦建议你为服务器添加2~4G的swap:手动添加 SWAP

3. 域名解析

3.1 基础解析

在开始部署之前,建议先完成域名的解析。比如夜梦想要使用的域名邮箱后缀为@imoe.email,那么需要解析的内容如下表(将imoe.email、mail.imoe.email改成你自己的域名,将记录IP改成你服务器的IP):

名称

记录类型

记录值

优先级/说明

@

MX

mail.imoe.email

优先级 10,邮件服务器域名

mail

A

你服务器的 IP 地址

邮件服务器 IP 地址

@

TXT

v=spf1 ip4:你的服务器 IP 地址 ~all

SPF 记录,指定允许发送邮件的服务器

s66666666._domainkey.imoe.email.(具体看5.3节创建DKIM密钥)

TXT

v=DKIM1; k=rsa; p=MI...

DKIM 公钥记录,确保邮件真实性

_dmarc

TXT

v=DMARC1; p=none; rua=dmarc@imoe.email

DMARC 记录,处理验证失败的邮件

selector1._domainkey (可选)

CNAME

指向你的 DKIM 公钥别名

可选的 CNAME 记录,用于 DKIM

其中DKIM公钥需要在部署完posteio以后获取!具体看5.3节创建DKIM密钥。这些解析的具体解释如下:

3.1.1 MX 记录(Mail Exchange)

用于指定接收邮件的服务器。

名称

记录类型

记录值

优先级

@

MX

mail.imoe.email

10

mail.imoe.email 是你服务器的主机名,需确保该主机名解析到你的服务器 IP 地址。

3.1.2 A 记录

A 记录将主机名解析为服务器的 IP 地址。

名称

记录类型

记录值

mail

A

你服务器的 IP 地址

mail.imoe.email 指向你托管邮件服务器的 IP 地址。

3.1.3 TXT 记录

SPF、DKIM 和 DMARC 验证有助于确保你的邮件不会被标记为垃圾邮件。

SPF 记录

指定允许通过 imoe.email 域名发送邮件的服务器。

名称

记录类型

记录值

@

TXT

v=spf1 ip4:你的服务器 IP 地址 ~all

如果有多个服务器发送邮件,可以继续添加更多 IP 地址或子网范围。

DKIM 记录

DKIM 记录用于签署邮件,确保其未被篡改。

名称

记录类型

记录值

default._domainkey

TXT

由你生成的 DKIM 公钥(Posteio 或其他邮件服务器生成的)

你需要在你的邮件服务器上生成 DKIM 密钥,并将公钥添加到 DNS 中。

DMARC 记录

DMARC 记录定义如何处理未通过 SPF 和 DKIM 验证的邮件。

名称

记录类型

记录值

_dmarc

TXT

v=DMARC1; p=none; rua=dmarc@imoe.email

3.1.4 CNAME 记录(可选)

夜梦这篇文章里面不做演示。如果你需要别名解析,比如为 DKIM 记录创建别名,可以使用 CNAME 记录。不过如果只是基本的邮件服务,不一定需要配置 CNAME 记录。

名称

记录类型

记录值

selector1._domainkey (DKIM 验证)

CNAME

你的 DKIM 公钥别名,若需要

3.2 协议解析(可选)

为了使用 IMAP、SMTP、POP 协议确保邮件的发送和接收,你需要在 DNS 中添加相应的 A 记录或 CNAME 记录,这样客户端才能正确连接到你的邮件服务器。这些记录通常会指向你的邮件服务器的主机名,例如 mail.imoe.email。以下是需要添加的 DNS 记录:

3.2.1 A 记录

这些记录将 IMAP、SMTP、POP 等子域名解析到你邮件服务器的 IP 地址。

名称

记录类型

记录值

imap

A

你服务器的 IP 地址

smtp

A

你服务器的 IP 地址

pop

A

你服务器的 IP 地址

3.2.2 CNAME 记录

你也可以使用 CNAME 记录将 imapsmtppop 这些子域名解析为 mail.imoe.email,如果不想分别设置 A 记录。

名称

记录类型

记录值

imap

CNAME

mail.imoe.email

smtp

CNAME

mail.imoe.email

pop

CNAME

mail.imoe.email

3.2.3 服务端口配置(客户端)
  • IMAPimap.imoe.email,使用端口 143(非加密)或 993(SSL)。
  • SMTPsmtp.imoe.email,使用端口 25(非加密)、465(SSL)、587(STARTTLS)。
  • POPpop.imoe.email,使用端口 110(非加密)或 995(SSL)。

邮件服务器可以支持 IMAP、SMTP、POP 协议,客户端能够正确连接到服务器并处理邮件。

4. 部署

创建文件夹:

代码语言:javascript
复制
mkdir -p /root/data/docker_data/posteio
cd /root/data/docker_data/posteio

创建配置文件:

代码语言:javascript
复制
vim docker-compose.yml

英文输入法下按 i 进入编辑模式后,将下面的配置文件编辑好粘贴进去。配置文件中禁用反病毒功能(DISABLE_CLAMAV=TRUE)与禁用反垃圾邮件功能(DISABLE_RSPAMD=TRUE),可以大幅减低内存和CPU占用,请根据需求选择是否禁用。

代码语言:javascript
复制
version: '3.7'

services:
  mailserver:
    image: analogic/poste.io
    hostname: mail.imoe.email
    ports:
      - "25:25"
      - "110:110"
      - "143:143"
      - "587:587"
      - "993:993"
      - "995:995"
      - "4190:4190"
      - "465:465"
      - "80:80"      # 添加 80 端口,用于 Let's Encrypt 验证
      - "443:443"    # 启用 HTTPS
    environment:
      - LETSENCRYPT_EMAIL=admin@imoe.email
      - LETSENCRYPT_HOST=mail.imoe.email
      - VIRTUAL_HOST=mail.imoe.email
   #   - DISABLE_CLAMAV=TRUE    # 反病毒,根据需求禁用
   #   - DISABLE_RSPAMD=TRUE    # 反垃圾邮件,根据需求禁用
      - TZ=Asia/Shanghai
      - HTTPS=ON               # 启用 HTTPS
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./mail-data:/data      # 确保持久化数据卷

esc 后,输入:wq 保存退出。运行:

代码语言:javascript
复制
docker-compose up -d

然后就可以访问mail.imoe.emailmail.yourdomain.com)进入WEB界面了。

5. 使用

5.1 注册

访问web界面提示隐私错误不用管,直接进入即可。

注册管理员用户:

注册完就可以进入管理员界面了:

5.2 配置Let’s encrypt证书

配置Let’s encrypt证书:

对着输入,换成你自己的域名:

点击save changes保存。不出意外的话是不会出意外的,申请一切正常。

5.3 创建 DKIM 密钥

点击进入域名的配置页面:

点击创建DKIM密钥:

添加DNS解析,这里的解析就是3.1 基础解析的第四条:

5.4 webmail使用

点击右上角的webmail,登录用户名和登录密码和管理后台一致。

使用界面,简洁明了:

6. 问题记录

在发件时显示“你的 DKIM 签名无效”,夜梦还不清楚啥原因……知道的小伙伴可以和夜梦聊聊,感谢!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-9-11 2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
  • 2. 准备
  • 3. 域名解析
    • 3.1 基础解析
      • 3.1.1 MX 记录(Mail Exchange)
      • 3.1.2 A 记录
      • 3.1.3 TXT 记录
      • 3.1.4 CNAME 记录(可选)
    • 3.2 协议解析(可选)
      • 3.2.1 A 记录
      • 3.2.2 CNAME 记录
      • 3.2.3 服务端口配置(客户端)
  • 4. 部署
  • 5. 使用
    • 5.1 注册
      • 5.2 配置Let’s encrypt证书
        • 5.3 创建 DKIM 密钥
          • 5.4 webmail使用
          • 6. 问题记录
          相关产品与服务
          云服务器
          云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档