编辑
2023-11-14
学习笔记
00
请注意,本文编写于 107 天前,最后修改于 99 天前,其中某些信息可能已经过时。

目录

1. iRedMail
2.go-smtp
3.mail-server
4.modoboa
5.mox
6.maddy
7.Mailu
9.Docker-Mailserver
背景
环境说明
基础介绍
常见邮件服务端口 & 协议 介绍
常见 邮件软件 和 安全软件 介绍
反垃圾邮件技术介绍
安装部署
安装前准备工作
配置定时续签证书
部署 docker-mailserver 容器镜像
Clone 仓库地址
更改后的配置展示
启动容器 & 后续配置工作
添加 email user
生成 DKIM 签名记录
添加 DKIM 记录值至 aliyun
验证测试
证书验证测试
MacOS & Windows 添加邮件记录
测试邮件发送
Windows to MacOS
Macos to Windows
Send to Gmail
参考文档
总结
10.postal
介绍
快速安装
dns配置
修改hosts文件
添加一行
安装docker
启动docker
设置开机启动
启动poste.io
配置NGINX反向代理
配置poste.io
通过浏览器访问https://mail.your-domain.com,进入poste.io的配置页面,按照提示进行配置即可。
1、设置管理员账户以及密码,然后进入后台管理页面。
创建 dkim 密钥,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 s20160910378.domainkey.your-domain.com
左侧点击 Virtual domains 然后点击域名进行配置。
点击 DKIM keys,然后点击 Generate new key,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 s20160910378.domainkey.your-domain.com
配置邮件客户端
第三方客户端 SMTP/IMAP/POP3 配置

以下是别人整理的github上最流行的十个邮件系统,有需要的收藏! 方便以后查询部署!

1. iRedMail

Full-featured, open source mail server solution for mainstream Linux/BSD distributions.

github仓库:https://github.com/iredmail/iRedMail

star数:1.2k

编程语言:shell

仓库创建时间:2011年7月31号,至今仍在更新

系统要求:(1)一个崭新的系统 (2)至少4GB内存才能使用完整的垃圾邮件和病毒扫描功能

2.go-smtp

📤 An SMTP client & server library written in Go

github仓库:https://github.com/emersion/go-smtp

star数:1.4k

编程语言:go

仓库创建时间:2014年9月28号,至今仍在更新

直接运行go程序即可部署

3.mail-server

Stalwart Mail Server is an open-source mail server solution with JMAP, IMAP4, and SMTP support and a wide range of modern features. It is written in Rust and designed to be secure, fast, robust and scalable.

github仓库:https://github.com/stalwartlabs/mail-server

star数:1.8k

编程语言:rust

仓库创建时间:2023年3月5号,至今仍在更新

支持多个平台MacOS/Linux/Windows/Docker,没有Web UI。

4.modoboa

Modoboa is a mail hosting and management platform including a modern and simplified Web User Interface. It provides useful components such as an administration panel and webmail.

github仓库:ttps://github.com/modoboa/modoboa

star数:2.7k

编程语言:python

仓库创建时间:2009年3月22号,至今仍在更新

最低系统要求:

CPU: 2 RAM: 2GB Disk: 10GB Python 3.8+ Postgres 12+ or MariaDB 10.4+ or MySQL 8+ or sqlite3 or LDAP 目前仅支持基于Debian的Linux发行版。

5.mox

modern full-featured open source secure mail server for low-maintenance self-hosted email

github仓库:https://github.com/mjl-/mox

star数:2.9k

编程语言:go

仓库创建时间:2023年1月29号,至今仍在更新

运行编译好的go程序就可以部署,有WebUI,也可以在Docker容器中运行。该项目还处于早期开发阶段,有些功能还没有实现

6.maddy

Composable all-in-one mail server.

github仓库:https://github.com/foxcpp/maddy

star数:4.4k

编程语言:go

仓库创建时间:2016年11月6号,至今仍在更新

没有提最低系统要求。可以在Docker容器中运行

7.Mailu

Mailu is a simple yet full-featured mail server as a set of Docker images. It is free software (both as in free beer and as in free speech), open to suggestions and external contributions. The project aims at providing people with an easily setup, easily maintained and full-featured mail server while not shipping proprietary software nor unrelated features often found in popular groupware.

github仓库:https://github.com/Mailu/Mailu

star数:5k

编程语言:python

仓库创建时间:2016年1月10号,至今仍在更新

系统要求:最低1G内存

只能在Docker容器中运行,有 Web UI。Mailu搭建教程

9.Docker-Mailserver

Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container.

github仓库:https://github.com/docker-mailserver/docker-mailserver

star数:12.2k

编程语言:shell

仓库创建时间:2015年3月22号,至今仍在更新

只能运行在Docker容器中,没有 Web UI。占用内存很少。Docker-Mainserver搭建教程

Mail-in-a-Box Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box.

github仓库:https://github.com/mail-in-a-box/mailinabox

star数:12.5k

编程语言:python

仓库创建时间:2013年8月18号,至今仍在更新

最低系统要求:512M,只支持Ubuntu系统

背景

由于 Gmail 邮箱在国内无法使用 且 国内手机 号码无法继续注册账号原因,最近想着折腾一下 自建一台 邮件服务器 玩玩。正好在国外有台 vps (搬瓦工的),比较空闲,目前且用来做扶墙使用,有点浪费,决定使用此台服务器搭建 邮件服务器 。选择的部署方案选择了较为轻便的 docker,在了解网上主流的实现镜像后 analogic/poste.io & mailserver/docker-mailserver,由于目前 vps 资源为 2c 1g 的低配置,试着跑了一下前者,资源占用非常大(可能 默认开了什么功能什么的), 在当前有限的配置下有点跑不动。了解后者这个 项目 后,可以在最低 1c 512m 下运行,最后决定选用后者 docker-mailserver 进行部署。


环境说明

  • Email 服务器: 23.105.194.216 (搬瓦工 vps)

  • 使用容器镜像: mailserver/docker-mailserver:latest

  • 系统版本: CentOS Linux release 7.9.2009 (Core)

  • 内核版本: 4.14.129-bbrplus

  • Docker Version: 20.10.7

  • Docker Compose Version: 1.29.2

  • DNS 服务商: aliyun

基础介绍

常见邮件服务端口 & 协议 介绍

详细介绍信息, 查看此文档

协议端口
SMTP25/587/465
IMAP143/993
POP3110/995

常见 邮件软件 和 安全软件 介绍

软件名称简介
sendmail用于发邮件。资格最老的邮局,所有Linux发行版基本都带。但是配置麻烦。
postfixWietse Venema 觉得 sendmail 配置太麻烦了,就开发了一个 “简化配置版 sendmail”,即postfix。支持smtp协议。
dovecot用于收邮件,支持imap/pop3。
spamassasin垃圾邮件过滤器。可以自订规则。
clamav邮件杀毒工具。
opendkim生成dkim签名。有什么用?详见下面的“反垃圾邮件技术”。
fail2ban防止别人暴力破解用户名密码的工具。

反垃圾邮件技术介绍

邮件反垃圾技术(Anti-Spam)是指防止垃圾邮件(Spam)的技术手段。垃圾邮件通常是指发送大量不需要或不想要的邮件,这些邮件经常包含欺诈或诈骗信息、色情内容或恶意软件等。为了防止这些邮件占据用户的收件箱,邮件服务提供商和企业采用了一系列技术手段来防止垃圾邮件。常见的邮件反垃圾技术包括:

  1. SPF(Sender Policy Framework)技术。SPF 用于验证发送邮件的服务器是否在域名的授权列表中。如果不在,则认为是垃圾邮件。通过在域名的 DNS 中添加 TXT 记录,可以指定哪些服务器可以发送该域名的邮件。
  2. DKIM(DomainKeys Identified Mail)技术。DKIM 是一种数字签名技术,通过在邮件头中添加一个签名,可以验证邮件是否被篡改过。使用 DKIM 技术可以有效防止垃圾邮件和欺诈邮件。
  3. DMARC(Domain-based Message Authentication, Reporting and Conformance)技术。DMARC 技术是 SPF 和 DKIM 的加强版,它通过在域名的 DNS 中添加 TXT 记录,指定如何处理验证失败的邮件,可以有效地降低垃圾邮件和欺诈邮件的数量。
  4. 邮件过滤技术。邮件过滤技术是指通过人工智能算法和机器学习技术,对邮件进行分类和判断,判断哪些邮件是垃圾邮件,然后将其过滤掉。
  5. 黑名单和白名单技术。黑名单和白名单技术是一种基于地址列表的技术,通过将发件人的地址添加到黑名单或白名单中,来防止垃圾邮件。
  6. Greylisting 技术。Greylisting 是一种基于时间的技术,当服务器接收到一个新的邮件时,将其延迟一段时间(通常是数分钟),然后再重新发送。由于大多数垃圾邮件发送服务器不会尝试重新发送,因此这种技术可以有效地过滤掉垃圾邮件。

通过这些技术的组合应用,可以有效地降低垃圾邮件的数量,保障用户的邮箱安全和隐私。


安装部署

这里安装部署我们使用 Docker Compose,使用较低版本还不行,建议是按照下面的步骤 安装最新 的版本,如你已安装和配置,对下面部分配置做跳过即可。

安装前准备工作

  • 安装 docker
bash
curl -fsSL https://get.docker.com -o get-docker.sh # 使用脚本安装 sudo sh get-docker.sh cat > /etc/docker/daemon.json << EOF `# 配置优化` { "oom-score-adjust": -1000, "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" }, "max-concurrent-downloads": 10, "exec-opts": ["native.cgroupdriver=systemd"], "max-concurrent-uploads": 10, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] } EOF systemctl start docker \ `# 启动 并设置开机自启` && systemctl enable docker \ && systemctl status docker
  • 安装 docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose \ && chmod +x /usr/local/bin/docker-compose \ && ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose \ && docker-compose --version
  • 阿里云设置 DNS 记录

    这里 设置的 DNS 未包含 DKIM 签名记录。这个记录需要在后面,使用脚本进行生成。

    DNS 类型记录名记录值TTL
    Amail23.105.194.21630 分钟
    MX@mail.treesir.pub10 (优先级 10)
    TXT@v=spf1 mx ~all30 分钟
    TXT_dmarcv=DMARC1; p=quarantine; rua=mailto
    .[email protected]; ruf=mailto
    .[email protected]; fo=0; adkim=r; aspf=r; pct=100; rf=afrf; ri=86400; sp=quarantine
    30 分钟

    表中 treesir.pub 注意替换为你自己的 主域名。

  • VPS 服务器设置 反向解析 PTR (rdns) 记录

image.png

  • 使用 certbot 生成 letsencrypt 证书
yum install -y certbot certbot certonly --manual --preferred-challenge dns -d mail.treesir.pub # 此 命令会生成 一条 TXT 记录记录用于验证

image.png

yum install bind-utils `# 安装 dig 命令` dig TXT _acme-challenge.mail.treesir.pub `# 检查 解析`

image.png

配置定时续签证书

注意

注意添加 crontab 定时任务时,检查一下 crond 服务器 是否有在正常运行。

crontab -e `# 打开 crontab 配置文件` 0 5 * * 1 /usr/bin/certbot renew --quiet service crond status `# 检查服务是否正常运行`

部署 docker-mailserver 容器镜像

Clone 仓库地址

git clone https://github.com/docker-mailserver/docker-mailserver.git

更改后的配置展示

docker-compose.yml 文件

version: '3.8' services: mailserver: image: docker.io/mailserver/docker-mailserver:latest hostname: mail domainname: treesir.pub container_name: mailserver env_file: mailserver.env dns: 223.5.5.5 ports: - "25:25" - "143:143" - "587:587" - "993:993" - "110:110" - "995:995" volumes: - ./data/maildata:/var/mail - ./data/mailstate:/var/mail-state - ./data/maillogs:/var/log/mail - /etc/localtime:/etc/localtime:ro - ./config/:/tmp/docker-mailserver - /etc/letsencrypt/archive/mail.treesir.pub:/tmp/ssl:ro restart: always stop_grace_period: 1m cap_add: [ "NET_ADMIN", "SYS_PTRACE" ]

mailserver.env 文件

这里由于文件较长,不方便演示,且打印未注释的代码段

env
cat mailserver.env |egrep -v '^$|^#' OVERRIDE_HOSTNAME= DMS_DEBUG=1 SUPERVISOR_LOGLEVEL= ONE_DIR=1 [email protected] ENABLE_UPDATE_CHECK=1 UPDATE_CHECK_INTERVAL=1d PERMIT_DOCKER=network NETWORK_INTERFACE= TLS_LEVEL= SPOOF_PROTECTION= ENABLE_SRS=0 ENABLE_POP3=1 ENABLE_CLAMAV=0 ENABLE_AMAVIS=1 AMAVIS_LOGLEVEL=0 ENABLE_FAIL2BAN=0 FAIL2BAN_BLOCKTYPE=drop ENABLE_MANAGESIEVE= POSTSCREEN_ACTION=enforce SMTP_ONLY= SSL_TYPE=manual SSL_CERT_PATH=/tmp/ssl/fullchain1.pem SSL_KEY_PATH=/tmp/ssl/privkey1.pem SSL_ALT_CERT_PATH= SSL_ALT_KEY_PATH= VIRUSMAILS_DELETE_DELAY= ENABLE_POSTFIX_VIRTUAL_TRANSPORT= POSTFIX_DAGENT= POSTFIX_MAILBOX_SIZE_LIMIT=102400000 ENABLE_QUOTAS=1 POSTFIX_MESSAGE_SIZE_LIMIT=102400000 PFLOGSUMM_TRIGGER= PFLOGSUMM_RECIPIENT= PFLOGSUMM_SENDER= LOGWATCH_INTERVAL= LOGWATCH_RECIPIENT= REPORT_RECIPIENT=0 REPORT_SENDER= REPORT_INTERVAL=daily POSTFIX_INET_PROTOCOLS=all ENABLE_SPAMASSASSIN=0 SPAMASSASSIN_SPAM_TO_INBOX=1 MOVE_SPAM_TO_JUNK=1 SA_TAG=2.0 SA_TAG2=6.31 SA_KILL=6.31 SA_SPAM_SUBJECT=***SPAM***** ENABLE_FETCHMAIL=0 FETCHMAIL_POLL=300 ENABLE_LDAP= LDAP_START_TLS= LDAP_SERVER_HOST= LDAP_SEARCH_BASE= LDAP_BIND_DN= LDAP_BIND_PW= LDAP_QUERY_FILTER_USER= LDAP_QUERY_FILTER_GROUP= LDAP_QUERY_FILTER_ALIAS= LDAP_QUERY_FILTER_DOMAIN= DOVECOT_TLS= DOVECOT_USER_FILTER= DOVECOT_PASS_FILTER= DOVECOT_MAILBOX_FORMAT=maildir DOVECOT_AUTH_BIND= ENABLE_POSTGREY=0 POSTGREY_DELAY=300 POSTGREY_MAX_AGE=35 POSTGREY_TEXT=Delayed by Postgrey POSTGREY_AUTO_WHITELIST_CLIENTS=5 ENABLE_SASLAUTHD=0 SASLAUTHD_MECHANISMS= SASLAUTHD_MECH_OPTIONS= SASLAUTHD_LDAP_SERVER= SASLAUTHD_LDAP_BIND_DN= SASLAUTHD_LDAP_PASSWORD= SASLAUTHD_LDAP_SEARCH_BASE= SASLAUTHD_LDAP_FILTER= SASLAUTHD_LDAP_START_TLS= SASLAUTHD_LDAP_TLS_CHECK_PEER= SASLAUTHD_LDAP_TLS_CACERT_FILE= SASLAUTHD_LDAP_TLS_CACERT_DIR= SASLAUTHD_LDAP_PASSWORD_ATTR= SASL_PASSWD= SASLAUTHD_LDAP_AUTH_METHOD= SASLAUTHD_LDAP_MECH= SRS_SENDER_CLASSES=envelope_sender SRS_EXCLUDE_DOMAINS= SRS_SECRET= DEFAULT_RELAY_HOST= RELAY_HOST= RELAY_PORT=25 RELAY_USER= RELAY_PASSWORD=

上面的 配置含义说明,请参考 此文档

启动容器 & 后续配置工作

docker-compose up -d # 启动容器 docker-compose logs -f # 观察容器 相关日志

添加 email user

服务器在公网,这里就不要使用 弱密码了,防止 hacker 进行 暴力破解。

./setup.sh email add [email protected] "xxx" `# 添加 邮件账号及密码` ./setup.sh email update [email protected] "xxx" `# 更新 邮件账号及密码`

生成 DKIM 签名记录

注意下面的配置中,设置了 keysize 参数。原因是默认使用的 keysize 大小为 4096 ,在 aliyun中 无法进行正常的添加。

./setup.sh config dkim keysize 2048 cat config/opendkim/keys/treesir.pub/mail.txt `# 查看 DKIM 签名记录` mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ojqOcyeDlOn6TcpXCsU92xul6d54wlx/UwPTuE0aywFc+ihyKGAm9D8nmroneN7gf82qTtDbJiHghzRlf6JdpR3kM4ipWKaNRSlUL/64HQqrMeEWx5ErpcgwrXxKWI/rcQ7Rjg2BliP6ayJiEflH0FOtxfgLHnYEcSKupmCV8znM4rZ/LHx9RDwc7o8jWujey6h9zrYPXyqim" "obGSB0PZGNQhe7mWRefMraFGgnNq+PrtEnmaOFxH2rG1Qh2hhMkeqJsH56yx9f1mxWYTX7r9FtvweGRb+GJNfi6a4vpDrTCffxx6XvGrq032i7VqHpmiaUUuM3j2x1DwHrIbpWTQIDAQAB" ) ; ----- DKIM key mail for treesir.pub

image.png

注意生成的记录,需要进行合并起来 才能使用。

image.png

添加 DKIM 记录值至 aliyun

DNS 类型记录名记录值TTL
TXTmail._domainkeyv=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ojqOcyeDlOn6TcpXCsU92xul6d54wlx/UwPTuE0aywFc+ihyKGAm9D8nmroneN7gf82qTtDbJiHghzRlf6JdpR3kM4ipWKaNRSlUL/64HQqrMeEWx5ErpcgwrXxKWI/rcQ7Rjg2BliP6ayJiEflH0FOtxfgLHnYEcSKupmCV8znM4rZ/LHx9RDwc7o8jWujey6h9zrYPXyqimobGSB0PZGNQhe7mWRefMraFGgnNq+PrtEnmaOFxH2rG1Qh2hhMkeqJsH56yx9f1mxWYTX7r9FtvweGRb+GJNfi6a4vpDrTCffxx6XvGrq032i7VqHpmiaUUuM3j2x1DwHrIbpWTQIDAQAB30 分钟

image.png

验证测试

测试的平台为 MacOS & Windows 两个平台 ,由于先前测试使用的工具为 Foxmail 会出现无法发送邮件问题 ,所以这里 MacOS 中使用的 邮件工具为 自带应用 Mail ,Windows 邮件工具使用 eM Clien

证书验证测试

在进行邮件测试前,可以使用 此链接 中的工具,测试 是否支持 tls 验证。

image.png

image.png

MacOS & Windows 添加邮件记录

  • macos

image.png

  • windows

    eM Clien 工具会自动为我们配置 IMAP & SMTP 地址信息。

image.png

image.png

测试邮件发送

Windows to MacOS

image.png

正常收到邮件了

Macos to Windows

回复一个邮件 进行测试

image.png

`测试 邮件收发 一切正常。`

Send to Gmail

测试发送邮件至 Gmail

image.png

> 正常收到邮件

参考文档


总结

一开始使用的 工具是 Foxmail 工具进行测试,卡在无法发送邮件这里,以为是自己的证书配置出错了,经过一系类的折腾、排错,花了一天左右的时间总算是搭建出来了。看到其相关文档,好像还可以与 LDAP 进行集成,这就不错了,有时间 继续研究一下。

10.postal

✉️ A fully featured open source mail delivery platform for incoming & outgoing e-mail

gitub仓库:https://github.com/postalserver/postal

star数:13.3k

编程语言:ruby

仓库创建时间:2017年4月16号,至今仍在更新

系统要求:至少4G内存,2个CPU,100G磁盘空间

只能在Docker容器中运行,部署流程复杂,功能齐全

这么多框架,应该如何选择 遵循以下原则:

项目存在时间长,star数量多,且项目仍在更新 系统硬件要求低,运行时内存占用小 最好有 Web UI,即可视化界面 部署流程足够简单,最好一条命令就搞定 总结 我自己用过Mailu和Docker-Mailserver,都是在Docker容器中运行的,部署起来贼麻烦,不想折腾了

我现在更倾向于mailinabox这种一键式部署。go项目也不错,单文件运行。想折腾的同学可以选择支持Docker部署的邮件系统

介绍

poste.io 邮件服务基于 Docker 搭建,用的是 Haraka + Dovecot + SQLite 邮件系统,能够轻易实现邮件收发、多域名控制、邮箱容量控制、邮件杀毒、邮件过滤以及 Webmail 等基础功能。同时,Poste 还提供了投递统计分析、客户端自动适配、一键安装SSL、邮件转发、邮件别名、Catch-All 等相当有用的功能。

快速安装

poste.io原生支持docker,占用资源较少,安装简单,适合个人使用。

dns配置

为了能够正常使用邮件服务,需要配置域名的 MX 记录,将邮件服务器的地址指向你的域名。下文以mail.your-domain.com为例。

记录类型主机记录记录值
MXyour-domain.commail.your-domain.com
TXTyour-domain.comv=spf1 mx ~all
Amail1.2.3.4 (your ip)
TXT_dmarcv=DMARC1; p=none; pct=100;
CHAMEimapmail
CNAMEsmtpmail
CNAMEpopmail
TXT_s20160910378._domainkey.your-domain.comk=rsa;p=MII.........

最后还需要到 VPS 服务商处添加一个反向 DNS,也就是 rDNS 解析,把 IP 解析到 mail.your-domain.com 这个邮件域名就好了,这个为可选项,有些 VPS 商家不提供这种服务。

以上 DNS 解析,至少需要添加前面三个 A 解析和 MX 解析,后面几个解析为可选,不添加也能用。

修改VPS hostname hostnamectl set-hostname mail.your-domain.com

修改hosts文件

vim /etc/hosts

添加一行

127.0.1.1 localhost.localdomain mail.your-domain.com 安装docker

安装docker

curl -sSL https://get.docker.com/ | sh

启动docker

systemctl start docker

设置开机启动

systemctl enable docker 安装poste.io 用docker compose安装,在要部署poste.io的目录下创建docker-compose.yml文件

js
version: '3.7' services: mailserver: image: analogic/poste.io hostname: mail.your-domain.com ports: - "25:25" - "110:110" - "143:143" - "587:587" - "993:993" - "995:995" - "4190:4190" - "465:465" - "8808:80" - "8843:443" environment: - LETSENCRYPT_EMAIL=admin@your-domain.com - LETSENCRYPT_HOST=mail.your-domain.com - VIRTUAL_HOST=mail.your-domain.com - DISABLE_CLAMAV=TRUE - TZ=Asia/Shanghai - HTTPS=OFF volumes: - /etc/localtime:/etc/localtime:ro - ./mail-data:/data
服务端口说明
SMTP25SMTP
IMAP143IMAP
POP3110POP3
SMTPS465SMTPS
IMAPS993IMAPS
POP3S995POP3S
MSA587SMTP 端口主要由电子邮件客户端在 STARTTLS 和身份验证之后使用
Sieve4190远程筛子设置
Webmail8808Webmail
Webmail8843Webmail

注意

  1. 请注意修改里面的域名和存储路径。

  2. 禁用反病毒功能(DISABLE_CLAMAV=TRUE)、禁用反垃圾邮件功能(DISABLE_RSPAMD=TRUE),可以大幅减低内存和CPU占用,请酌情设置禁用选项。

  3. 禁用WEB收发功能(DISABLE_ROUNDCUBE=TRUE),可以进一步减少资源占用,不过非必要不建议禁止。

  4. 8808为http端口,可以根据自己的需求修改。

启动poste.io

docker-compose up -d

配置NGINX反向代理

upstream poste_backend { server 127.0.0.1:8808; } server { listen 80; listen 443 ssl http2; server_name mail.your-domain.com; ssl_certificate /etc/nginx/conf.d/ssl/cert.pem; ssl_certificate_key /etc/nginx/conf.d/ssl/key.pem; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; access_log /var/log/nginx/mail.log main; location ^~ /.well-known { proxy_pass http://poste_backend; } location / { proxy_pass http://poste_backend; proxy_set_header Host $host; proxy_intercept_errors off; # real-ip proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; # websocket proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_read_timeout 86400; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } if ($server_port = 80 ) { return 301 https://$host$request_uri; } }

配置poste.io

通过浏览器访问https://mail.your-domain.com,进入poste.io的配置页面,按照提示进行配置即可。

1、设置管理员账户以及密码,然后进入后台管理页面。

image.png 配置 Let’s Encrypt 证书。

image.png

image.png

创建 dkim 密钥,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 _s20160910378._domainkey.your-domain.com

左侧点击 Virtual domains 然后点击域名进行配置。

点击 DKIM keys,然后点击 Generate new key,生成 key,添加到 DNS 解析记录,就是上面最后一条解析 _s20160910378._domainkey.your-domain.com

image.png

配置邮件客户端

第三方客户端 SMTP/IMAP/POP3 配置

协议服务器地址端口SSL
SMTPmail.your-domain.com,smtp.your-domain.com25, 465, 587STARTTLS
IMAPmail.your-domain.com,imap.your-domain.com993, 143STARTTLS
POP3mail.your-domain.com,pop.your-domain.com995, 110STARTTLS

本文作者:我本无罪

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!