前言
本教程基于 ubuntu 18.04(其他的 linux 理論上也是可以的,知識安裝的軟件包不一樣)。用到的主要軟件為:postfix,dovecot,mysql.廢話不多說,下面是教程:
前置條件
安裝軟件
切換到 root 用戶下,執行以下命令:
apt updateapt install postfix postfix-mysql dovecot-core dovecot-pop3d dovecot-imapd dovecot-lmtpd dovecot-mysql
安裝過程中 postfix 會彈出提示:
這里我們選擇第二項:Internet Site。
接著會有如下提示:
這里填入:test.com
配置mx 解析
在域名提供商增加以下解析:
MX 記錄:test.com 指向 服務器IP A 記錄:pop3.test.com 指向 服務器IP A 記錄:smtp.test.com 指向 服務器IP創建 mysql 數據庫
新建一個數據庫 mailserver,管理賬號為:admin/123456
創建虛擬域表,作為認證域。該表是郵件服務器用以接收郵件的域名:
-- 建立表CREATE TABLE `virtual_domains` (`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(50) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 插入一條記錄insert into virtual_domains values(1,'test.com')
創建用戶表,用于用戶身份認證。
-- 創建用戶表CREATE TABLE `virtual_users` (`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 virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 插入兩個用戶,以md5加密密碼,實際應用中應該選擇強度更高的算法,md5目前以及不安全了insert into virtual_users values(1,1,md5('123456'),'[email protected]');insert into virtual_users values(2,1,md5('123456'),'[email protected]');
創建別名表.該表作用相當于當 source 收到郵件時,該郵件會自動轉發到 destination 上。
-- 創建表CREATE TABLE `virtual_aliases` (`id` int(11) NOT NULL auto_increment,`domain_id` int(11) NOT NULL,`source` varchar(100) NOT NULL,`destination` varchar(100) NOT NULL,PRIMARY KEY (`id`),FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE)ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 插入數據,所有發給first的郵件都會自動轉發給secondinsert into virtual_aliases values(1,1,'[email protected]','[email protected]')
新聞熱點
疑難解答