赞
踩
通过本系列文章,最终可以部署一套提供如下服务的邮件系统:
由于开源软件的配置与相关组件的版本有很大关系,不同版本配置可能略有不同,在配置过程中需要仔细甄别。本系列文章涉及的相关组件版本如下:
如您参考本系列文章进行测试、安装,需要注意如下事项:
为了模拟真实的使用场景,邮件用户采用虚拟用户(区别于采用操作系统账号方式),用户信息存储在数据库中。数据库采用MariaDB(和mysql几乎相同)。
关于MariaDB数据库安装方案在此不做赘述,可以参考其他文章处理。
启动数据库:
- systemctl start mariadb
- systemctl enable mariadb
进入数据库:
mysql -u root
设置数据库root账户密码:
alter user root@localhost identified via mysql_native_password using password('admin@123');
建立为Postfix提供访问权限的数据库、及授权账户,数据库名称、账户名称可以自行定义。
- /* 创建数据库,名称可以自定义 */
- create database maildb;
-
- /* 授权mailuser用户对maildb数据库select权限,并设置密码*/
- GRANT SELECT ON maildb.* TO 'mailuser'@'127.0.0.1' IDENTIFIED BY 'admin@123';
- FLUSH PRIVILEGES;
- /* 域名表 */
- 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;

初始化部分用户数据,方便后续测试:
- /* 新增两个域名 */
- 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');

至此,数据库配置完毕。其他配置请查看本系列其他文章。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。