快速使用 mailu 自建邮件服务器

快速使用 mailu 自建邮件服务器

在当今数字化时代,拥有一个自建的邮件服务器可以让我们更好地控制自己的数据。Mailu 是一个轻量级的邮件服务器解决方案,适合个人和小型团队使用。本文将详细介绍如何快速搭建 Mailu 邮件服务器。

1 环境准备

1.1 软硬件要求

在开始之前,请确保你有以下环境:

  • 一台运行 Linux 的服务器
    • 操作系统推荐使用 Ubuntu 20.04 或更高版本
    • 硬件性能至少1核1G,推荐2核4G 或更高规格
  • Docker 和 Docker Compose 已安装
  • 域名(例如:example.com)

⚠️ 大多数云厂商关闭了出方向的25端口,这样就可以禁止使用服务器发送邮件,主要原因是为了防止垃圾邮件和恶意邮件的发送

1.2 安装 Docker 和 Docker Compose

如果你的服务器上还没有安装 Docker 和 Docker Compose,可以通过以下命令进行安装:

1
2
3
4
5
6
7
8
9
10
11
12
# 更新包列表
apt update

# 安装 Docker
apt install -y docker-ce

# 启动 Docker 并设置开机自启
systemctl start docker
systemctl enable docker

# 安装 Docker Compose 插件
apt install -y docker-compose-plugin

2.1 安装 Mailu

2.1 生成配置

使用 Mailu 提供的工具生成配置文件,点击配置生成工具链接。当前最新稳定版本是 2024.06,根据需要自行调整。

以 example.com 为例子,配置一个链接为 mail.example.com 的邮箱工具。

配置1-1

  • display name: 填写域名,这里是 example.com
  • tls: 填写 tls 的方式,如果你有 nginx 做转发,就选 notls,没有的话可以用 letsencrypt 让它自动生成 tls 证书。

配置1-2

  • website name: 填写你想展示的名称;
  • website url: 填写你想跳转的网站地址。
  • enable the amdin ui:勾选就有后台管理界面;
  • enable the api:如果你需要批量生产修改用户邮件等等,勾选这个;

配置2-1

  • web mail client: 选择是否开启 mail 的界面,两个不同的界面可以选,推荐 snappymail。
  • 下面是一些防病毒和垃圾邮件,根据你的需要进行勾选,如果你的服务器资源很少,就别开了。

配置3-1

1
2
3
4
# 在你的服务器上运行下面命令
ifconfig eth0 | grep inet
# inet 172.22.22.22 netmask 255.255.240.0 broadcast 172.22.22.255
# inet6 ffff::1111:ffff:ffff:ffff prefixlen 64 scopeid 0x20<link>
  • ipv4 address:从上面的结果中找到 172.22.22.22 就是你的内网 IP,填进去;
  • public hostnames:这个是你最终要访问的web url,填写为 mail.example.com。
  • 点击 setup mailu 进入下一步。

配置4-1

此时配置已经生成完毕,进入服务器跟着操作即可。

2.2 修改配置

1
2
3
4
5
mkdir /mailu

cd /mailu
wget https://setup.mailu.io/2024.06/file/38892623-cffd-4dc7-bf40-2d18a0eefd99/docker-compose.yml
wget https://setup.mailu.io/2024.06/file/38892623-cffd-4dc7-bf40-2d18a0eefd99/mailu.env

此时需要确保 nginx 配置正确才能启动 mailu。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vim /etc/nginx/sites-available/mail.example.com

# 添加
server {
listen 80;
listen [::]:80;
server_name mail.example.com;
rewrite ^(.*)$ https://mail.example.com:443$1 permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/letsencrypt/live/mail.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.example.com/privkey.pem;
server_name mail.example.com;

location / {
proxy_pass http://172.22.22.12:10080;
}
}

nginx_ensite mail.example.com
service nginx reload

此时需要修改 docker-compose.yml 中带出来的端口号 80 -> 10080 和 443 -> 10443。

1
2
3
4
5
6
7
8
9
10
11
cd /mailu

vim docker-compose.yml

# Core services
front:
...
ports:
- "172.22.22.22:10080:80"
- "172.22.22.22:10443:443"
...

2.3 运行 Mailu

使用 Docker Compose 启动 Mailu:

1
2
# 运行所有服务
docker compose -p mailu up -d

这将会下载所需的 Docker 镜像并启动 Mailu 服务。(国内可能无法直接拉下来)

2.4 设置管理员账号密码

1
2
# 替换 qwer1234 为你自己的密码
docker compose -p mailu exec admin flask mailu admin admin example.com qwer1234

3 访问 Mailu

在浏览器中访问 http://mail.example.com/admin,使用在配置中设置的管理员邮箱和密码登录,举例为 admin@example.com 和 qwer1234。

管理界面UI

在登录成功后,你将看到 Mailu 的管理界面。这里你可以管理邮箱用户、域名、别名等设置。

⚠️:如果你发现无法收到邮件,尝试去服务器的安全组中把入方向的 25 端口打开,出方向就不用开了,云厂商已经堵死啦!

快速使用 mailu 自建邮件服务器

https://blog.ailln.com/v2ai/2024/12/01/application/1-mail/

作者

Ailln

发布于

2024-12-01

更新于

2024-12-02

许可协议

评论