前言
需要用到的邮件系统组件
mailman是一种邮件列表的管理器,可以用来创建、管理和维护电子邮件列表。它通常需要和邮件传输代理进行结合使用,我们这里使用postfix作为邮件传输代理(MTA),postfix负责接收、传递和发送电子邮件。
mailman和postfix的关系
mailman使用postfix作为它的邮件传输代理(MTA)来处理与邮件列表相关的电子邮件的传递。当订阅者发送邮件到邮件列表的地址时,postfix接收邮件并将其传递给mailman。然后mailman处理邮件,执行订阅、退订、消息转发等操作,并通过postfix将邮件发送给mailman。(可以将postfix理解成送信的邮递员。)
总结来说,postfix是邮件服务器软件,负责整个邮件的传递过程;而mailman是一个邮件列表管理器,和postfix协同工作,为邮件列表提供管理。两者共同构成一个完成的邮件系统,用于创建和管理邮件列表。
因此在搭建完整的邮件服务器的过程中,需要同时安装mailman和postfix两个邮件系统的组件。下面的文档将从零介绍搭建邮件服务器的整个过程。
遇到的一些坑
装mailman3的版本,mailman2版本太旧,只支持python2.4, 因此,本文采用docker的方式安装mailman3。
不能直接使用源码安装,安装过程中可能会fulfl_lock报错,因为版本不适配,可以尝试一下把fulfl_lock降级安装。
一、环境准备
在服务器环境上安装docker和docker-compose。
sudo apt install docker.io docker-compose |
注意:最新版本的docker-compose在命令行执行时用“docker compose”没有中间的横线。要更新docker
创建安装目录
如下是mailman-core和mailman-web的安装目录
mkdir -p /opt/mailman/core
mkdir -p /opt/mailman/web |
mailman-core负责处理接受和发送电子邮件并存储所有与电子邮件相关的内容
mailman-web是mailman的web界面,允许用户订阅和取消订阅邮件列表以及web设置的首选项。
拉取docker-mailman工程
git clone https://github.com/maxking/docker-mailman
cd docker-mailman
docker compose up -d # 运行mailman-core和mailman-web容器 |
修改配置文件
在docker-mailman路径下修改docker-compose.yaml配置文件
关键路径:
现在需要把docker做成镜像,然后部署到nginx的时候需要把端口映射出来,nginx映射的是80端口,需要自己改
创建容器的时候网络要和mailman的配置里相同的网络"docker-mailman-database-1
在新的环境上运行镜像的时候需要映射出端口,现在只是用vscode直接设置的端口转发
二、安装postfix
1.构建容器
在构建postfix容器时,需要和mailman-core、mailman-web使用一样的网络,postfix默认端口为25
docker run -itd --name mailman-postfix -v /opt/postfix:/postfix -p 8082:25 --network=docker-mailman_mailman ubuntu:22.04 /bin/bash |
需要和mailman-core和mailman-web使用相同的网络来创建docker容器 网络名称docker-mailman_mailman
2.安装postfix
在docker内安装postfix
sudo apt install postfix |