设为首页 收藏本站
查看: 1538|回复: 0

[经验分享] Postfix搭建邮件服务器

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-24 11:23:28 | 显示全部楼层 |阅读模式
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 命令行收发邮件测试
     发邮件:
           [iyunv@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

         * .                                    //以&quot;.&quot;表示正文结束
           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 &quot;hello world&quot; | mail admin@abc.com

             root用户使用mail命令收邮件
               
          2.给group@abc.com发一封信,user2应该收到信
              # echo &quot;hello world&quot; | mail group@abc.com
               
              使用mail命令,以user2的身份去收信
              # mail -u user2   
           
          3.给user1@abc.com发一封信,root用户应该收到信
              # echo &quot;hello world&quot; | 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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143024-1-1.html 上篇帖子: 1Email数据、帐号、邮件数据挖掘PostFix2012_01 下篇帖子: 使用OpenLDAP搭建Postfix邮件系统。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表