搭建ExtMail邮件服务器

本文最后更新于:2022年5月21日 凌晨

邮件系统是网络常用的通信渠道,本文记录使用 ExtMail 搭建属于自己的邮件服务器的方法。

概述

ExtMail 简介

  • ExtMail开源版最早发布于2005年,定位于中小企业,满足稳定邮件收发,0成本拥有自己的中文邮件系统,

  • 采用开放源代码的授权方式,为客户免费提供使用。后于2012年初推出专业版产品。目前ExtMail已经为众多知名央企、教育、制造业等在内的大量客户提供商业化的产品解决方案,并拥有海量的免费企业用户群,是同时拥有开源和收费两个产品线的邮件产品。目前互联网上运行超过一万台ExtMail服务器,承载十数万企业域名、数千万企业邮箱。

  • 官方网站:https://www.extmail.cn/

ExtMail的优势与特点

  • 开源、免费,符合中国人习惯,使用不受限制
  • 拥有自主著作权、产权,用户不必担心版权问题
  • 安装简便,友善的全Web方式后台管理
  • 丰富的增值模块,应对不同客户的需求
  • 与LisPush手机电邮无缝对接,满足移动办公要求
  • 提供VPS模板,利用LisVP云主机系统实现1分钟安装

建立邮件服务器

这里使用 docker 安装的方式配置服务器

1
docker pull palidin/extmail
  • 配置好数据库
  • 运行容器
1
docker run -it -d --privileged --name extmail -p 80:80 -p 110:110 -p 25:25 -p 143:143 --restart=always -v /data/mail/vmail:/home/domains -v /data/mail/database:/var/lib/mysql/extmail palidin/extmail
  • 如果使用 docker-compose,配置文件如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: '3'
services:
mail:
image: palidin/extmail:latest
hostname: mx.example.com
container_name: extmail
ports:
- "25:25"
- "110:110"
- "143:143"
- "80:80"
privileged: true
environment:
EXTMAIL_LANG: en_US
volumes:
- /data/mail/vmail:/home/domains
- /data/mail/database:/var/lib/mysql/extmail
you can set environment variable EXTMAIL_LANG to change mail system language, options: en_US,zh_CN,zh_TW, en_US is default.

http://example.com/extmail is user interface
http://example.com/extman is admin interface,username root@extmail.org, password extmail*123*
Docker Pull Command
docker pull palidin/extmail

  • 之后可以访问该邮件配置主页
  • 用户界面 http://IP/extmail
  • 用户登录界面

  • 账号 root@extmail.org
  • 密码 extmail*123*
  • 输入密码后可以登录管理员界面

错误解决

问题1

  • 如果遇到错误
1
listen tcp4 0.0.0.0:25: bind: address already in use.
  • 说明 25 端口被其他邮件应用启用,需要查看占用端口的进程
1
2
3
4
sudo lsof -i:25
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
master 1894 root 13u IPv4 31165 0t0 TCP *:smtp (LISTEN)
master 1894 root 14u IPv6 31166 0t0 TCP *:smtp (LISTEN)
  • 杀掉
1
kill -9 1894

问题2

  • 登录时报错
1
failed: Unknown database 'extmail' at /var/www/extsuite/extmail/libs/Ext/Auth/MySQL.pm line 45
  • 需要为 docker 配置数据库
  • 创建docker 时加入-v /data/mail/vmail:/home/domains -v /data/mail/database:/var/lib/mysql/extmail

参考资料