您的位置:首页 > 其它

Postfix搭建邮件服务器

2013-08-15 14:52 281 查看
1. 邮件服务器基本原理

      MUA:邮件用户代理,供用户写信、读信、寄信

      MTA:邮件传输代理,接收、递送邮件

      MDA:邮件投递代理,投递本地邮件到适当的邮箱

      SMTP:简单邮件传输协议,寄信协议

      POP3:邮局协议第3版,用户把邮件从服务器上剪切回来,收信协议

      IMAP4:因特网消息访问协议第4版,用户把邮件从服务器上复制回来,收信协议

      邮箱:存放邮件的地方

      邮件:email

      收件人:邮件的接收者

      邮件别名:一个邮箱的其他名字,一个邮箱可以有多个名字

      邮件列表:群发功能

      邮件转发:发到user@163.com的邮件转到boos@163.com

-------------------------------------------------------------------------------------------------------------------            

2. Postfix简介

      2.1 Postfix是MTA

          高性能、安全、兼容性

      2.2 安装

          2.2.1 准备工作                                

                邮件服务器要有合法的计算机名,如:mail.abc.com,并需要到DNS服务器上进行域名注册,才能正常启动

        DNS配置参见DNS配置

                在abc.com区域文件中进行A记录和MX记录的设置

                abc.com.        IN  MX   5    mail.abc.com.

                mail.abc.com.   IN  A         192.168.1.111

          2.2.2 安装postfix

        rpm -ivh postfix-2.3.3-2.i386.rpm                  

       2.3 目录

           /etc/postfix/              Postfix配置文件目录

           /var/spool/mail            用户电子邮箱放置目录

           /var/spool/postfix         邮件队列目录

           /var/log/maillog           Postfix日志文件

----------------------------------------------------------------------------------------------------------------------

       2.4 配置

           1.主配置文件

             /etc/postfix/mail.cf

             

             主配置文件修改后用 postfix reload命令重新载入主配置文件

     

           2.邮件别名配置文件

            /etc/aliases                   

            /etc/aliases.db

            邮件别名配置文件修改后用postalias hash:/etc/aliases命令

            生成aliases.db数据库文件

-----------------------------------------------------------------------------------------------------------------

       2.5 主配置文件分析

             queue_directory = /var/spool/postfix      队列目录

             command_directory = /usr/sbin             程序目录

             daemon_directory = /usr/libexec/postfix   后台程序目录

             mail_owner = postfix                      进程运行所有者

             myhostname = mail.abc.com                 邮件主机名称

             mydomain = abc.com                        邮件主机域名

             myorigin = $mydomain                      设置发送邮件所使用的主机名或域名

             inet_interfaces = all                     监听端口

             mydestination = $myhostname, $mydomain    可以接受邮件的主机名或域名

             mynetworks = 192.168.1.0/24, 127.0.0.0/8  设置可以转发邮件的网络

             relay_domains = $mydestination            设置可以转发的邮件域名

             alias_maps = hash:/etc/aliases            指定用户别名定义的文件路径

             alias_database = hash:/etc/aliases        指定别名表数据库文件路径

 

        2.6 postfix收发信依据

            2.6.1 postfix帮助client发送信件:

                  当客户端来自信任的网络,符合 $mynetworks 的设定时

                  当客户端来自信任的主机,符合 $relay_domains的设定项目时

                  当客户端来自不信任的网域,但是去的目的地主机符合$relay_domains设定时

            2.6.2 什么情况下,postfix会将信件收下来

                  收件人主机名符合 $inet_interfaces 的设定

                  收件者主机名符合 $mydestination 的设定

                  收件人主机名符合 $virtual_maps 的设定

-------------------------------------------------------------------------------------------------------------

       2.7 测试main.cf文件

           2.7.1 显示main.cf里面设定的数据指令

                 # postconf -n

           2.7.2 检查main.cf语法错误

                 # postfix check    

                 若没有提示,则配置正确

           

       2.8 启动、停止、重启postfix服务

               # service postfix start/stop/restart

               # /etc/init.d/postfix start/stop/restart

           开机自动启动

               # chkconfig postfix on

       2.9 检测邮件服务是否启动成功

             # netstat -tl | grep smtp

               tcp     0    0 *:smtp         *:*                    LISTEN

   

---------------------------------------------------------------------------------------------------------------------------

2.10 命令行收发邮件测试

     发邮件:

           [root@mail ~]# telnet mail.abc.com 25         //链接服务器25号端口

           Trying 192.168.1.111...

           Connected to mail.abc.com (192.168.1.111).

           Escape character is '^]'.

           220 mail.abc.com ESMTP Postfix       //返回220表示连接成功

         * helo mail.abc.com                    //通过helo介绍自己

           250 mail.abc.com                     //返回250表示成功

         * mail from:user@abc.com               //mail from:发件人地址

           250 Ok

         * rcpt to:root@abc.com                 //rcpt to:收件人地址

           250 Ok

         * data                                 //data:开始输入邮件正文

           354 End data with <CR><LF>.<CR><LF>

           helo root                            //邮件正文部分

           helo root

           helo root

 

         * .                                    //以"."表示正文结束

           250 Ok: queued as 511DAA63DE

         * quit                                 //quit:退出

           221 Bye

           Connection closed by foreign host.

   收邮件: # mail

------------------------------------------------------------------------------------------------------------------

3.2 设置邮件别名和邮件群发功能

    3.2.2 确保postfix主配置文件里有这两句:

            alias_maps = hash:/etc/aliases

            alias_database = hash:/etc/aliases

    3.2.1 修改/etc/aliases文件

            admin:  root               //发给admin@abc.com的信,实际是发给root@abc.com

            group:  user1,user2        //发给group@abc.com的信,实际是发给user1@abc.com和user2@abc.com

            user1: root@abc.com       //发给user1@abc.com的信,实际转发给root@.abc.com

          

    3.2.2 生成aliases.db数据库

            # postalias hash:/etc/aliases

    3.2.3 验证

          1.给admin@abc.com发一封信,root应该收到信

             # echo "hello world" | mail admin@abc.com

             root用户使用mail命令收邮件

                

          2.给group@abc.com发一封信,user2应该收到信

              # echo "hello world" | mail group@abc.com

                

              使用mail命令,以user2的身份去收信

              # mail -u user2    

           

          3.给user1@abc.com发一封信,root用户应该收到信

              # echo "hello world" | mail user1@abc.com

              以user1身份收信没有收到

              # mail -u user1

              以root用户收信应该收到

              # mail          

-------------------------------------------------------------------------------------------------------------------           

4.POP和IMAP的实现,dovecot可以实现POP和IMAP服务器功能

    4.1 安装

        # rpm -ivh dovecot-1.0.7-2.el5.i386.rpm \

        >perl-DBI-1.52-1.fc6.i386.rpm \

        >mysql-5.0.45-7.el5.i386.rpm

    4.2 配置

        # vim /etc/dovecot.conf

                  protocols = imap imaps pop3 pop3s

    4.3 启动

                # service dovecot start

                # chkconfig --level 35 dovecot on

 

        4.4 验证是否启动

                # netstat -tl |grep imap

                  tcp      0     0 *:imaps      *:*            LISTEN

                  tcp      0     0 *:imap       *:*            LISTEN

                # netstat -tl |grep pop

                  tcp      0     0 *:pop3s      *:*            LISTEN

                  tcp      0     0 *:pop3       *:*            LISTEN

测试:在客户端使用Outlook客户端收发邮件

-----------------------------------------------------------------------------------------------------------------------

5. 安装配置Webmail

       5.1 安装apache服务

           rpm -ihv httpd-2.2.3-11.el5_1.3.i386.rpm

     

       5.2 安装Webmail和相关软件包

       squirrelmail-1.4.8-4.0.1.el5.noarch.rpm

       php-5.1.6-20.el5.i386.rpm

       php-cli-5.1.6-20.el5.i386.rpm

       php-common-5.1.6-20.el5.i386.rpm

       php-mbstring-5.1.6-20.el5.i386.rpm

           

       5.3 配置Squirrelmail

       # /usr/share/squirrelmail/config/conf.pl

       在  server setting 里把  domain  设为 mail.abc.com

       在  language  里把  default language  设为  zh_CN

       5.4 启动相关服务

             # service httpd start

       # service postfix restart

       # service dovecot restart

       5.5 访问Webmail的界面

           http://mail.abc.com/webmai
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: