文章目录
- 搭建 Extmail企业邮件服务
- 简介
- 邮件协议
- 组成
- 客户端
- 1、配置 DNS 模块
- 2、使用 extmail 自带模板在 MySQL 中创建数据库
- 安装数据库、修改密码
- 安装Apache、部署网站
- 向数据库中导入extmail的初始化数据,导入前修改部分密码、方便登录 还原数据库,创建一些extmail需要的表
- 3、配置 POSTFIX 支持虚拟域(MTA,集成MDA:mailbox)
- 拷贝模板文件(extmail提供的跟mysql对接的配置文件)
- 修改postfix配置文件、添加对extmail的支持
- 测试MTA(MTA和MDA在一起)
- 4、配置 MRA(dovecot)
- 配置dovecot配置文件、配置与mysql连接
- 编辑认证文件,选择使用的认证方式
- 指定如何和数据库mysql连接
- 测试MRA
- 5、配置 WEB 界面
- 配置mail.extmail.org的虚拟主机
- 修改普通用户的信息,让html与数据库结合
- 修改管理员用户的信息,让html与数据库结合
- 6、安装一些缺失的依赖
- 7、登录界面验证
- 1)用户收发界面:mail.extmail.org 或 mail.extmail.org/extmail/cgi/index.cgi (postmaster、extmail)
- 2)后台管理界面:mail.extmail.org/extman/cgi/index.cgi (root用户 123)
- 群发邮件
- 创建用户
搭建 Extmail企业邮件服务
简介
概念:电子邮件服务是处理邮件交换的软硬件设施的总称
格式:用户名@邮件域
特点:非实时、双工、数据完整
邮件协议
协议类型 | 协议名 | 默认端口 | ssl加密后端口 |
---|---|---|---|
发送 | SMTP | 25 | 465 |
接收 | pop3 | 110 | 995 |
接收 | IMAP4 | 143 | 993 |
区别:
POP3协议是从服务器下载下来,本地修改、不同步改动;
IMAP4协议是连接服务器,直接在服务器端修改;
组成
发信服务:将客户的邮件发送到指定的服务器的邮箱
收信服务:根据客户命令去邮箱中取响应的邮件
邮箱:存放该邮件域的用户的邮件
客户端
客户端:用户代理用来接受用户的指令,将用户的信件传送至信件传输代理
outlook
foxmail
浏览器
实验环境
服务器:centos7.6
ip:172.16.1.10
测试机:Windows10 华为浏览器
ip:172.16.1.1
DNS:172.16.1.10
邮件服务软件包下载 提取码:2105
1、配置 DNS 模块
搭建DNS服务器
yum -y install bind
vim /etc/named.conf
vim /etc/named.rfc1912.zones
vim /var/named/extmail.z
vim /var/named/extmail.f
systemctl restart named
systemctl enable named
nslookup 172.16.1.10
nslookup mail.extmail.org
2、使用 extmail 自带模板在 MySQL 中创建数据库
安装数据库、修改密码
yum -y install mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb
ss -antp | grep :3306
mysqladmin -uroot password 123 #设置数据库初始密码
安装Apache、部署网站
yum -y install httpd
mkdir /var/www/extsuite
tar -zxf extmail-1.2.tar.gz
cp -a extmail-1.2 /var/www/extsuite/extmail
tar -zxf extman-1.1.tar.gz
cp -a extman-1.1 /var/www/extsuite/extman
向数据库中导入extmail的初始化数据,导入前修改部分密码、方便登录 还原数据库,创建一些extmail需要的表
cd /var/www/extsuite/extman/docs/
vim extmail.sql删除创建表的语句后的“TYPE=MyISAM COMMENT...”
mysql -uroot -p123 < extmail.sql
# 还原数据,在上述表中插入一些基础邮件用户
vim init.sql 修改manager表中的root@extmail.org的密码,设为123
mysql -uroot -p123 < init.sql
导入的数据:
连接数据库:用户名extmail、密码extmail、数据库名extmail
管理员:用户名root@extmail.org、密码123(自己改的)
用户:用户名postmaster@extmail.org、密码extmail、
别名support@extmail.org
3、配置 POSTFIX 支持虚拟域(MTA,集成MDA:mailbox)
yum -y install postfix
拷贝模板文件(extmail提供的跟mysql对接的配置文件)
cd /var/www/extsuite/extman/docs/
cp -a mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf /etc/postfix/
修改postfix配置文件、添加对extmail的支持
useradd -u 600 -s /sbin/nologin vmail
vim /etc/postfix/main.cf#可以取消配置中hostname、domain等配置,但不取消也不影响、数据库连接优先级高#修改监听的接口inet_interfaces=all#注释掉localhostinet_interfaces=localhost#添加指定用户的配置virtual_mailbox_base=/home/vmailvirtual_uid_maps=static:600virtual_gid_maps=static:600#添加postfix读取模板文件的配置
virtual_alias_maps=mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains=mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps=mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
systemctl restart postfix
systemctl enable postfix
测试MTA(MTA和MDA在一起)
yum -y install telnet
telnet mail.extmail.org 25
mail from: root@extmail.org
rcpt to:postmaster@extmail.org
data
test...
.
quit
4、配置 MRA(dovecot)
#安装dovecot,dovecot-mysql组件是让两者结合
yum -y install dovecot dovecot-mysql
配置dovecot配置文件、配置与mysql连接
cd /etc/dovecot/conf.d/
#指定mailbox的位置
vim 10-mail.conf mail_location = maildir:/home/vmail/%d/%n/Maildirfirst_valid_uid = 600
编辑认证文件,选择使用的认证方式
vim 10-auth.conf #开启数据库认证,取消前面的注释!include auth-sql.conf.ext
指定如何和数据库mysql连接
cd /etc/dovecot
cp -a /usr/share/doc/dovecot-2.2.36/example-config/dovecot-sql.conf.ext ./
vim dovecot-sql.conf.extdriver =mysql#用户名和密码都是extmail,在还原时建的connect = host=localhost dbname=extmail user=extmail password=extmail default_pass_scheme = MD5password_query = \ SELECT username, domain, password \FROM mailbox WHERE username = '%u' and domain = '%d'user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'
# 启动 dovecot
systemctl restart dovecot
systemctl enable dovecot
ss -antp | grep dovecot
测试MRA
telnet mail.extmail.org 110#使用数据里的用户名和密码,证明连接成功user postmaster@extmail.org pass extmaillistretr 1quit
5、配置 WEB 界面
配置mail.extmail.org的虚拟主机
vim /etc/httpd/conf/httpd.conf#确认主配置文件加载的模块配置文件位置IncludeOptional conf.d/*.conf
cd /etc/httpd/conf.d
vim vhost.conf<VirtualHost *:80>ServerName mail.extmail.orgDocumentRoot /var/www/extsuite/extmail/html/ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgiAlias /extmail /var/www/extsuite/extmail/htmlScriptAlias /extman/cgi /var/www/extsuite/extman/cgiAlias /extman /var/www/extsuite/extman/htmlSuexecUserGroup vmail vmail</VirtualHost>
修改普通用户的信息,让html与数据库结合
cd /var/www/extsuite/extmail
chown -R vmail.vmail cgi
cp -a webmail.cf.default webmail.cf
vim webmail.cfSYS_MAILDIR_BASE = /home/vmail - 127 行SYS_MYSQL_USER = extmail - 139 行SYS_MYSQL_PASS = extmailSYS_CRYPT_TYPE = plain - 136 行
修改管理员用户的信息,让html与数据库结合
cd /var/www/extsuite/extman
chown -R vmail.vmail cgi
cp -a webman.cf.default webman.cf
vim webman.cfSYS_MAILDIR_BASE = /home/vmail - 12 行SYS_SESS_DIR = /tmp/ - 18 行SYS_CRYPT_TYPE = plain - 124 行SYS_CAPTCHA_ON = 0 -- 21行systemctl restart httpd
6、安装一些缺失的依赖
安装perl语言依赖(部分依赖c6不需要安装)
yum -y install *CGI perl-GD perl-ExtUtils-* perl-CGI*
C7:安装图文显示模块的依赖
yum -y install rrdtool-perl-1.4.8-9.el7.x86_64.rpm rrdtool-1.4.8-9.el7.x86_64.rpm
安装syslog
tar -zxf Unix-Syslog-1.1.tar.gz
cd Unix-Syslog-1.1
perl Makefile.PL
make && make install
修改Unix-Syslog依赖安全性问题
cd /var/www/extsuite/extmail
vim cgi/index.cgi#去掉第一行的T,将-wT改为-w#!/usr/bin/perl -w
7、登录界面验证
1)用户收发界面:mail.extmail.org 或 mail.extmail.org/extmail/cgi/index.cgi (postmaster、extmail)
2)后台管理界面:mail.extmail.org/extman/cgi/index.cgi (root用户 123)
群发邮件
postmaster已接收
创建用户