Postfix+Dovecot+Roundcube开源邮件系统搭建系列1-2:系统搭建目标+MariaDB数据库配置(MySQL)
创始人
2024-12-29 13:35:57
0

 1. 系统搭建目标

通过本系列文章,最终可以部署一套提供如下服务的邮件系统:

  • SMTP服务:由Postfix提供,监听25、465、587端口。
  • POP3服务:由Dovecot提供,监听110、995端口。
  • IMAP服务:由Dovecot提供,监听143、993端口。
  • WebMail服务:由Roundcube提供。通过Nginx+PHP的组合运行web服务,监听80、443端口。

2. 开源组件列表

由于开源软件的配置与相关组件的版本有很大关系,不同版本配置可能略有不同,在配置过程中需要仔细甄别。本系列文章涉及的相关组件版本如下:

  • 操作系统:Rocky Linux release 8.6 (Green Obsidian)
  • Postfix:3.5.8
  • Dovecot:2.3.16
  • Roundcube:1.6.7
  • PHP:8.3
  • MariaDB:10.6.18
  • Nginx:1.14.1

3. 注意事项

如您参考本系列文章进行测试、安装,需要注意如下事项:

  • 本系列文章参考了商业邮件系统的相关安全配置,在测试过程中非必需,请根据个人需要进行取舍。
  • 涉及配置文件编辑部分均采用vi编辑器,根据个人喜好,您也可以选择nano等,下文不再强调说明。
  • 本系列文章中以mailab.cn域名为例,凡是涉及该域名的地方请自行修改为您需要的域名。
  • 本系列文中中涉及SSL证书。如果需要申请证书,可以到相关证书机构咨询,也可以参考ACME进行证书自动化续期。本文将不再详述如何申请SSL证书。
  • 如果需要与站外进行发信测试,还需要涉及域名的MX记录配置。
  • 本系列文章适用于对Linux系统、电子邮件服务有一定了解的用户。即使您具备这方面知识,在配置过程中难免还是会遇到各种问题,请保持耐心。

4. MariaDB数据库配置(MySQL)

4.1 背景信息

为了模拟真实的使用场景,邮件用户采用虚拟用户(区别于采用操作系统账号方式),用户信息存储在数据库中。数据库采用MariaDB(和mysql几乎相同)。

4.2 MariaDB数据库安装

关于MariaDB数据库安装方案在此不做赘述,可以参考其他文章处理。

启动数据库:

systemctl start mariadb systemctl enable mariadb

进入数据库:

mysql -u root

设置数据库root账户密码:

alter user root@localhost identified via mysql_native_password using password('admin@123');

4.3 创建数据库

建立为Postfix提供访问权限的数据库、及授权账户,数据库名称、账户名称可以自行定义。

/* 创建数据库,名称可以自定义 */ create database maildb;  /* 授权mailuser用户对maildb数据库select权限,并设置密码*/ GRANT SELECT ON maildb.* TO 'mailuser'@'127.0.0.1' IDENTIFIED BY 'admin@123'; FLUSH PRIVILEGES;

4.4 初始化数据表

/* 域名表 */ CREATE TABLE `vt_domain` ( `id`  INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  /* 虚拟用户表 */ CREATE TABLE `vt_user` ( `id` INT NOT NULL AUTO_INCREMENT, `domain_id` INT NOT NULL, `password` VARCHAR(106) NOT NULL, `email` VARCHAR(120) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), FOREIGN KEY (domain_id) REFERENCES vt_domain(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  /* 别名表 */ CREATE TABLE `vt_alias` ( `id` INT NOT NULL AUTO_INCREMENT, `domain_id` INT NOT NULL, `source` varchar(100) NOT NULL, `destination` varchar(100) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (domain_id) REFERENCES vt_domain(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4.5 初始化虚拟用户数据

初始化部分用户数据,方便后续测试:

/* 新增两个域名 */ INSERT INTO `maildb`.`vt_domain` (`id` ,`name`) VALUES ('1', 'mailabc.cn'), ('2', 'mail.mailabc.cn');  /* 新增两个虚拟账号,并设置密码为admin@123, 这里的密码做了加密处理,如需使用其他加密方式可以查询官方文档 */ INSERT INTO `maildb`.`vt_user` (`id`, `domain_id`, `password` , `email`) VALUES ('1', '1', ENCRYPT('admin@123', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'admin@mailabc.cn'), ('2', '1', ENCRYPT('admin@123', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'dmarck-reports@mailabc.cn');  /* 新增一个别名账号,本文用不到,直接借鉴的其他文档设置,后续文章再研究具体用法 */ INSERT INTO `maildb`.`vt_alias` (`id`, `domain_id`, `source`, `destination`) VALUES ('1', '1', 'postmaster@mailabc.cn', 'admin@mailabc.cn');

至此,数据库配置完毕。其他配置请查看本系列其他文章。

参考来源:Postfix+Dovecot+Roundcube开源邮件系统搭建系列2:MariaDB数据库配置(MySQL) | MailABC邮件知识百科icon-default.png?t=N7T8https://www.mailabc.cn/blog/2024/06/15/postfixdovecotroundcube%E5%BC%80%E6%BA%90%E9%82%AE%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%90%AD%E5%BB%BA%E7%B3%BB%E5%88%972%EF%BC%9Amariadb%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE%EF%BC%88mysql%EF%BC%89/

相关内容

热门资讯

黑科技辅助挂!丫丫衡阳字牌辅助... 黑科技辅助挂!丫丫衡阳字牌辅助器!本来是有开挂辅助软件(有挂解密)-哔哩哔哩1、全新机制【ai辅助工...
诀窍透视挂!赣牌圈小程序黑科技... 诀窍透视挂!赣牌圈小程序黑科技入口(辅助)竟然存在有辅助插件(哔哩哔哩)运辅助工具,进入游戏界面。进...
黑科技插件!同乡游有辅助软件吗... 黑科技插件!同乡游有辅助软件吗!都是是真的有开挂辅助攻略(有挂教学)-哔哩哔哩1、任何同乡游有辅助软...
项目透视挂!欢乐茶馆挂(辅助)... 项目透视挂!欢乐茶馆挂(辅助)果然真的有辅助方法(哔哩哔哩)1)欢乐茶馆挂免费钻石:进一步探索欢乐茶...
记者获悉!竞技联盟辅助插件!其... 记者获悉!竞技联盟辅助插件!其实确实有开挂辅助工具(有人有挂)-哔哩哔哩进入游戏-大厅左侧-新手福利...
秘籍透视挂!广西微乐小程序微信... 秘籍透视挂!广西微乐小程序微信辅助器免费(辅助)都是一直都是有辅助软件(哔哩哔哩)进入游戏-大厅左侧...
规律辅助挂!上品游戏辅助器!竟... 规律辅助挂!上品游戏辅助器!竟然确实有开挂辅助插件(的确有挂)-哔哩哔哩运上品游戏辅助器辅助工具,进...
法门透视挂!鸿狐辅助开挂透视(... 法门透视挂!鸿狐辅助开挂透视(辅助)一直是真的有辅助神器(哔哩哔哩)1、全新机制【鸿狐辅助开挂透视a...
技巧辅助挂!pokemmo脚本... 技巧辅助挂!pokemmo脚本辅助下载!切实是有开挂辅助挂(有挂教程)-哔哩哔哩1、让任何用户在无需...
步骤透视挂!老友广东辅助工具(... 步骤透视挂!老友广东辅助工具(辅助)原来一直总是有辅助app(哔哩哔哩)一、老友广东辅助工具游戏安装...