6.1.3 mailman邮件服务器搭建

前言

需要用到的邮件系统组件

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

需要和mailman-core和mailman-web使用相同的网络来创建docker容器 网络名称docker-mailman_mailman

2.安装postfix

在docker内安装postfix