一、基础原理
1、邮件服务器是一种用来负责电子邮件收发管理的设备。比网络上免费的邮箱更加安全和高效,因此一直是企业公司的必备设备。
简单邮件传输协议(SMTP)是因特网电子邮件系统首要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。跟大多数应用层协议一样,SMTP也存在两个端:在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器在向其他邮件服务器发送邮件消息时,它是作为SMTP客户在运行。当一个邮件服务器从其他邮件服务器接收邮件消息时,它是作为SMTP服务器在运行。
POP3:Post Office Protocol
IMAP4: Internet Mail Access Protocol
SASL:Simple Authintication Secure Layer ,简单认证安全层
MTA:邮件传输代理,SMTP服务器
LDAP:Lightweight Directory Access Protocol
2、MTA:邮件传输代理,SMTP服务器
sendmail,UUCP
单体结构,SUID,配置文件语法(m4编写)
qmail
postfix:模块化设计,安全,跟sendmail兼容,效率高
exim:MTA
Exchange(Windows,异步消息协作平台)
3、MDA:
procmail
maildrop
4、MRA:
pop3 ,imap4
cyrus-imap
dovecot
5、MUA:
outlook express ,outlook
foxmail
thunderbird
evolution
mutt(文本界面)
6、webmail:
openwebmail
squirrelmail
extmail(extman)
二、搭建邮件服务器的部署软件
postfix +SASL (courier-authlib) + mysql 发送邮件
Dovecot + mysql 接受邮件
extamil+ extman+http 网页显示
1、postfix的配置文件
postfix模块化:
master: /etc/postfix/master.cf
mail:/etc/postfix/main.cf
参数=值 :参数必须写在行的绝对行首,以空白开头的行被认为是上一行的延续
2、postconf:配置postfix
-d:显示默认的配置
-n:修改了得配置
-m:显示支持的查找表类型
-A:显示支持的SASL客户端插件类型
-e PARMATER-VALUE: 更改某参数配置信息,并保存至main.cf文件中
3、smtp状态码:
1XX:纯信息
2XX:正确
3XX:上一步操作尚未完成,需要继续补充
4XX:暂时性错误
5XX:永久性错误
4、smtp协议命令:
hello (smtp协议)
ehllo(esmtp协议)
mail from
rcpt to
三、实验环境
1、硬件环境:
Linux服务器一台,IP地址:172.28.5.159
Window系统一台,做测试使用,需要安装outlook,并与服务器在同一个局域网内
2、服务器操作系统
四、搭建邮件服务器内容如下:
1、搭建DNS服务器
2、搭建postfix服务器及普通发信
3、普通收信
4、认证收信
5、squirrelmail收发邮件 (搭建网页收发邮件)
6、邮件群发功能配置
7、邮件发送容量大小配置
8、通过配置用户磁盘配额实现限制用户邮箱空间
五、配置步骤
1、搭建DNS服务器
(1)安装DNS服务
yum install bind -y
(2)修改主配置文件
vim /etc/named.conf
(3)检查语法错误
named-checkconf
(4)配置区域配置文件
vim /etc/named.rfc1912.zones
在文件末尾加入以下内容:
检查语法错误: named-checkconf
(5)区域数据文件配置
复制文件添加-P 表示复制过来的文件保持权限不变。
vim melvin1.com.zone
(6)创建反向区域数据配置文件
cp -p named.localhost melvin1.com.local
vim melvin1.com.local
named-checkconf 检查语法错误
(7)重启服务,进行验证
(8)设置服务器域名并进行解析验证
vim /etc/resolv.conf
解析验证:
2、搭建postfix并配置基本发信功能
(1)验证是否支持cyrus dovecot功能
postconf -a
(若postfix已安装好,则会支持这两个功能,若不支持,表示postfix未安装好;CentOS 7开始默认系统自带postfix。)
systemctl start postfix # 启动postfix服务
(2)配置主配置文件
vim /etc/postfix/main.cf
修改以下内容信息:
myhostname=mail.melvin1.com 邮件服务器的主机名
mydomain=melvin1.com 邮件域
myorigin=$mydomain 往外发邮件的邮件域
inet_interfaces=172.28.5.159, 127.0.0.1 监听的网卡 (注意,两个地址之间有空格)
mydestination=$myhostname, $mydomain 服务的对象
home_mailbox=maildir/ 邮件存放的目录
保存以上的修改并退出。
检查语法是否正确: postfix check
(3)重启服务并查看postfix
(4)增加邮件测试账号
(5)连接服务器25号端口进行简单发信测试
[root@localhost ~]# telnet mail.melvin1.com 25
Trying 172.28.5.159... 连接成功
Connected to mail.melvin1.com.
Escape character is '^]'.
220 mail.melvin1.com ESMTP Postfix
helo mail.melvin1.com 声明本机的主机
250 mail.melvin1.com
mail from:melvin@melvin1.com 声明发件人地址
250 2.1.0 Ok
rcpt to:tom@melvin1.com 声明收件人地址
250 2.1.5 Ok
data 写正文
354 End data with <CR><LF>.<CR><LF>
I am melvin !!!
. 正文结束标记
quit 退出
3、收信验证
方法一: 搭建dovecot 提供收信服务
yum install -y dovecot 安装dovecot软件
修改配置文件:vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
listen = *,::
!include conf.d/*.conf
在最后添加以下信息:
ssl = no
disable_plaintext_auth = no
mail_location = maildir:~/Maildir
然后重启 dovecot 服务: systemctl restart dovecot
收信验证:
telnet mail.melvin1.com 110
user tom //收件人
pass password //邮箱密码
list //列表查看邮件
retr 1 // 读取编号为1的邮件
quit // 退出邮箱
方法二: 使用win系统上的邮箱客户端系统进行收信验证
打开foxmail程序,更改账户配置。
4、发信认证部分:
(1)编辑认证文件:
yum install -y cyrus-sasl* 安装cyrus-sasl 软件
vim /etc/sasl2/smtpd.conf
vim /etc/sysconfig/saslauthd
o
启动服务:
systemctl start saslauthd
systemctl enable saslauthd
(2)编辑postfix主配置文件,添加以下信息:
vim /etc/postfix/main.cf
添加完成后,检查语法错误: postfix check
重启postfix服务: systemctl restart postfix
(3)测试普通发信验证
(4)将邮件用户名和密码生成密文
(5)字符终端测试认证发信:
telnet mail.melvin1.com 25
ehlo mail.melvin1.com //注意是ehlo 不是helo
auth login //认证登录
bWVsdmlu 加密用户名
cGFzc3cwcmQ= 加密的密码
发送成功,能够往外发送邮件了。
5、配置squirrelmai收发邮件(小松鼠网页浏览邮箱)
(1)安装httpd, mariadb, php 服务
yum install -y httpd
yum install -y mariadb-server mariadb
yum install -y php
yum install -y php-mysql
yum install -y php-gd
yum install -y libjpeg*
yum install -y php-ldap
yum install -y php-odbc
yum install -y php-pear
yum install -y php-xml
yum install -y php-xmlrpc
yum install -y php-mhash
(2)编辑Apache 主配置文件
vim /etc/httpd/conf/httpd.conf 修改内容如下:
ServerName mail.melvin1.com
DirectoryIndex index.html index.php
(3)编辑PHP主配置文件
vim /etc/php.ini 修改内容如下:
date.timezone=PRC
(4)启动服务并查看端口
(5)网页测试,浏览器输入: 172.28.5.159
(6)、编辑mysql数据库安全配置
(7)编辑php测试文件
vim /var/www/html/index.php
(8)编辑mysql数据库
进入数据库,建立授权账号
mysql -u root -p 然后输入数据库密码
创建数据库等相关信息:
测试数据库工作是否正常:
vim /var/www/html/index.php
浏览器输入地址,进行测试:
(9)下载小松鼠网页邮箱安装包:
下载网址:http://www.squirrelmail.org/download.php
上传至邮件服务器:
(10)解压:
tar xzvf squirrelmail-webmail-1.4.22.tar.gz 解压安装包
tar xzvf all_locales-1.4.18-20090526.tar.gz -C squirrelmail-webmail-1.4.22 将汉化包解压到安装包文件里
cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail 复制文件到http默认目录下
cd /var/www/html/mail/
ls
(11)创建网页邮箱默认配置文件
(12)编辑配置文件:
vim config.php, 修改以下内容:
(13)网页验证测试: 172.28.5.159/mail
6、邮件群发配置
(1)设置邮件组
vim /etc/aliases 添加以下信息:
student: melvin,tom
保存退出后,生成新的hash数据库文件:newaliases
(2)重启postfix服务
systemctl restart postfix
(3)添加lucy邮件测试用户
(4)使用客户端用lucy用户给student组发送邮件
转载于:https://blog.51cto.com/5001660/2377785