poste.io邮局搭建
自建邮局
https://www.xiaoqikeji.com/index.php/archives/52/
poste.io 邮件服务基于 Docker 搭建,用的是 Haraka + Dovecot + SQLite 邮件系统,能够轻易实现邮件收发、多域名控制、邮箱容量控制、邮件杀毒、邮件过滤以及 Webmail 等基础功能。同时,Poste 还提供了投递统计分析、客户端自动适配、一键安装SSL、邮件转发、邮件别名、Catch-All 等相当有用的功能。
视频教程:https://www.youtube.com/watch?v=jjysH0AXmZ4
准备工作
服务器一台 配置推荐4h4g 必须支持25端口(如不支持可以发工单可以申请 不过有些厂商确实是不开放这个端口 所以这种就不适合)视频演示中的机器是香港的Niihost BGP线路 点我访问
域名一个 (以下演示平台为CloudFlare 其他平台也一样解析即可)
为了能够正常使用邮件服务,需要配置域名的 MX 记录,将邮件服务器的地址指向你的域名。下文以 mail.your-name.com 为例
记录类型————主机记录————记录值
A————mail————ip
Cname————smtp————mail.your-name.com
Cname————pop————mail.your-name.com
Cname————imap————mail.your-name.com
MX————@————mail.your-name.com
TXT————@————v=spf1 mx -all 10
TXT————XXXXXdomainkey————?(配置完成后生成DKIM Key添加)
TXT———— _dmarc————v=DMARC1; p=none; pct=100; rua=mailto:[email protected](看情况添加)系统重置为debian12
首先,确保你的服务器已经安装了 Docker 和 Docker Compose。如果还没有安装,可以执行以下命令来安装:
sudo apt update
sudo apt upgrade -y
sudo apt install -y docker.io docker-compose创建目录结构
sudo mkdir -p /opt/poste/data
sudo mkdir -p /opt/poste/letsencrypt
sudo mkdir -p /opt/poste/www进入目录
cd /opt/poste创建 Docker Compose 文件
在 /opt/poste 目录下创建 docker-compose.yml 文件: 推荐在文档编辑,直接粘贴格式打乱可能会报错!!!
sudo nano /opt/poste/docker-compose.yml(没有安装nano可执行以下命令安装 如安装或系统自带可跳过这步)
sudo apt update
sudo apt install nanoversion: '3' services: poste: image: analogic/poste.io container_name: poste hostname: mail.your-name.com domainname: your-name.com restart: always ports: - "25:25" - "80:80" - "443:443" - "110:110" - "995:995" - "143:143" - "993:993" - "587:587" volumes: - /opt/poste/data:/data - /opt/poste/letsencrypt/live:/etc/letsencrypt/live - /opt/poste/letsencrypt/archive:/etc/letsencrypt/archive - /opt/poste/letsencrypt/renewal:/etc/letsencrypt/renewal - /opt/poste/www:/var/www/html environment: - HTTPS=ON certbot: image: certbot/certbot container_name: certbot volumes: - /opt/poste/letsencrypt:/etc/letsencrypt - /opt/poste/www:/var/www/html entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done'"
运行 Poste.io 容器 使用 Docker Compose 启动 Poste.io 服务:
sudo docker-compose up -d poste运行成功后就可以访问站点了 mail.your-name.com
申请TLS证书与配置DKIM Key记录 最后添加到TXT记录即可2024年11月1号更新
安装Docker
sudo apt update
sudo apt install -y docker.io
启动Docker
sudo systemctl start docker
sudo systemctl enable docker
创建脚本
nano install_poste.sh#!/bin/bash # Poste.io 邮件服务器安装脚本 echo "Poste.io 是一个开源的邮件服务器解决方案。" echo "教程介绍: https://www.youtube.com/watch?v=vGkkoZQlBJ8" echo "-------------------------------------------------------" # 检测端口 25 是否可用 echo "端口检测" port=25 timeout=3 if echo "quit" | timeout $timeout telnet smtp.qq.com $port | grep 'Connected'; then echo "端口 $port 当前可用" else echo "端口 $port 当前不可用,请检查网络设置" exit 1 fi echo "------------------------" echo "1. 安装 2. 更新 3. 卸载" echo "------------------------" echo "0. 返回上一级" echo "------------------------" read -e -p "输入你的选择: " choice case $choice in 1) read -e -p "请设置邮箱域名 (例如 mail.your-name.com): " yuming mkdir -p /home/docker echo "$yuming" > /home/docker/mail.txt echo "------------------------" echo "先解析以下 DNS 记录:" echo "A mail <你的服务器IP>" echo "CNAME imap $yuming" echo "CNAME pop $yuming" echo "CNAME smtp $yuming" echo "MX @ $yuming" echo "TXT @ v=spf1 mx ~all" echo "TXT ? ?" echo "------------------------" echo "按任意键继续..." read -n 1 -s -r -p "" # 启动 Poste.io 容器 docker run \ --net=host \ -e TZ=Europe/Prague \ -v /home/docker/mail:/data \ --name "mailserver" \ -h "$yuming" \ --restart=always \ -d analogic/poste.io echo "Poste.io 已安装完成。访问 https://$yuming 进行配置。" ;; 2) echo "正在更新 Poste.io 邮件服务器..." docker rm -f mailserver docker pull analogic/poste.io docker run \ --net=host \ -e TZ=Europe/Prague \ -v /home/docker/mail:/data \ --name "mailserver" \ -h "$yuming" \ --restart=always \ -d analogic/poste.io echo "更新完成,访问 https://$yuming 进行检查。" ;; 3) echo "正在卸载 Poste.io..." docker rm -f mailserver docker rmi -f analogic/poste.io rm /home/docker/mail.txt rm -rf /home/docker/mail echo "Poste.io 已卸载。" ;; 0) echo "返回上一级。" ;; *) echo "无效的选择,请重试。" ;; esac
运行脚本
chmod +x install_poste.sh
./install_poste.sh