一、基础原理

    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、服务器操作系统

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim

四、搭建邮件服务器内容如下:

    1、搭建DNS服务器

    2、搭建postfix服务器及普通发信

    3、普通收信

    4、认证收信

    5、squirrelmail收发邮件 (搭建网页收发邮件)

    6、邮件群发功能配置

    7、邮件发送容量大小配置

    8、通过配置用户磁盘配额实现限制用户邮箱空间

五、配置步骤

    1、搭建DNS服务器

        (1)安装DNS服务

        yum install bind -y

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_02

        (2)修改主配置文件

        vim /etc/named.conf

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_03

        (3)检查语法错误

            named-checkconf 

        (4)配置区域配置文件

            vim /etc/named.rfc1912.zones

        在文件末尾加入以下内容:

            

架构邮件服务器的软件优缺点 邮件服务器设计_vim_04

        检查语法错误:  named-checkconf 

        (5)区域数据文件配置

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_05

        复制文件添加-P 表示复制过来的文件保持权限不变。

        vim melvin1.com.zone

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_06

        (6)创建反向区域数据配置文件

        cp -p named.localhost melvin1.com.local

        

架构邮件服务器的软件优缺点 邮件服务器设计_php_07

        vim melvin1.com.local

        

架构邮件服务器的软件优缺点 邮件服务器设计_数据库_08

        named-checkconf          检查语法错误

        (7)重启服务,进行验证

        

架构邮件服务器的软件优缺点 邮件服务器设计_数据库_09

        (8)设置服务器域名并进行解析验证

        vim /etc/resolv.conf

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_10

        解析验证:

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_11

    2、搭建postfix并配置基本发信功能

        (1)验证是否支持cyrus dovecot功能

        postconf -a

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_12

(若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

        

架构邮件服务器的软件优缺点 邮件服务器设计_php_13

        (4)增加邮件测试账号

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_14

        (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      退出

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_15

    3、收信验证

    方法一: 搭建dovecot 提供收信服务

        yum install -y dovecot         安装dovecot软件

        

架构邮件服务器的软件优缺点 邮件服务器设计_架构邮件服务器的软件优缺点_16

        修改配置文件: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

        

架构邮件服务器的软件优缺点 邮件服务器设计_架构邮件服务器的软件优缺点_17

        收信验证:

        telnet mail.melvin1.com 110

        user tom    //收件人

        pass  password    //邮箱密码

        list      //列表查看邮件

        retr  1   //   读取编号为1的邮件

        quit   //  退出邮箱

        

架构邮件服务器的软件优缺点 邮件服务器设计_数据库_18

    方法二: 使用win系统上的邮箱客户端系统进行收信验证

        打开foxmail程序,更改账户配置。

        

架构邮件服务器的软件优缺点 邮件服务器设计_数据库_19

    4、发信认证部分:

        (1)编辑认证文件:

        yum install -y cyrus-sasl*     安装cyrus-sasl 软件

        vim /etc/sasl2/smtpd.conf 

        

架构邮件服务器的软件优缺点 邮件服务器设计_数据库_20

        vim /etc/sysconfig/saslauthd

        

架构邮件服务器的软件优缺点 邮件服务器设计_数据库_21

o

        启动服务:

        systemctl start saslauthd

        systemctl enable saslauthd

        (2)编辑postfix主配置文件,添加以下信息:

        vim /etc/postfix/main.cf

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_22

        

架构邮件服务器的软件优缺点 邮件服务器设计_架构邮件服务器的软件优缺点_23

        添加完成后,检查语法错误:  postfix check  

        重启postfix服务:  systemctl restart postfix

        (3)测试普通发信验证

        

架构邮件服务器的软件优缺点 邮件服务器设计_架构邮件服务器的软件优缺点_24

        (4)将邮件用户名和密码生成密文

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_25

        (5)字符终端测试认证发信:

        telnet mail.melvin1.com 25

        ehlo mail.melvin1.com       //注意是ehlo  不是helo

        auth login      //认证登录

        bWVsdmlu     加密用户名

        cGFzc3cwcmQ=      加密的密码

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_26

        发送成功,能够往外发送邮件了。

    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)启动服务并查看端口

        

架构邮件服务器的软件优缺点 邮件服务器设计_php_27

        (5)网页测试,浏览器输入: 172.28.5.159

        

架构邮件服务器的软件优缺点 邮件服务器设计_php_28

        (6)、编辑mysql数据库安全配置        

架构邮件服务器的软件优缺点 邮件服务器设计_php_29

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_30

        (7)编辑php测试文件

        vim /var/www/html/index.php 

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_31

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_32

        (8)编辑mysql数据库

        进入数据库,建立授权账号

        mysql -u root -p  然后输入数据库密码

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_33

        创建数据库等相关信息:

        

架构邮件服务器的软件优缺点 邮件服务器设计_php_34

        测试数据库工作是否正常:

        vim /var/www/html/index.php

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_35

        浏览器输入地址,进行测试:

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_36

        (9)下载小松鼠网页邮箱安装包:

        下载网址:http://www.squirrelmail.org/download.php

        

架构邮件服务器的软件优缺点 邮件服务器设计_数据库_37

        上传至邮件服务器:

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_38

        (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

        

架构邮件服务器的软件优缺点 邮件服务器设计_数据库_39

        (11)创建网页邮箱默认配置文件

        

架构邮件服务器的软件优缺点 邮件服务器设计_php_40

        (12)编辑配置文件:

        vim config.php,  修改以下内容:

        

架构邮件服务器的软件优缺点 邮件服务器设计_开发工具_41

        (13)网页验证测试: 172.28.5.159/mail

        

架构邮件服务器的软件优缺点 邮件服务器设计_架构邮件服务器的软件优缺点_42

                

架构邮件服务器的软件优缺点 邮件服务器设计_数据库_43

     6、邮件群发配置

        (1)设置邮件组

        vim /etc/aliases    添加以下信息:

        student:          melvin,tom

        保存退出后,生成新的hash数据库文件:newaliases

        (2)重启postfix服务

        systemctl restart postfix

        (3)添加lucy邮件测试用户

        

架构邮件服务器的软件优缺点 邮件服务器设计_架构邮件服务器的软件优缺点_44

        (4)使用客户端用lucy用户给student组发送邮件

        

架构邮件服务器的软件优缺点 邮件服务器设计_vim_45

    

转载于:https://blog.51cto.com/5001660/2377785