Postmail是一个电子邮件服务程序。



特点:



1. postfix是免费的:



2. 更快:



postfix在性能上大约比sendmail×××倍。



4. 更健壮:



postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加。



5. 更灵活:



postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。



6. 安全性



postfix具有多层防御结构,可以有效地抵御恶意***者。如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。



 postfix的邮件队列(mail queues)



postfix有四种不同的邮件队列,并且由队列管理进程统一进行管理:



1. maildrop:本地邮件放置在maildrop中,同时也被拷贝到incoming中。



2. incoming:放置正在到达或队列管理进程尚未发现的邮件。



3. active:放置队列管理进程已经打开了并正准备投递的邮件,该队列有长度的限制。



4. deferred:放置不能被投递的邮件。



下面我们来看看它的搭建



 



pyemail 收邮件 postmail_开发工具



配置



1、 给主机改名



编辑配置文件



[root@zlj ~]# vim /etc/sysconfig/network



 



pyemail 收邮件 postmail_开发工具_02



 



pyemail 收邮件 postmail_vim_03



[root@zlj ~]# vim /etc/hosts



 



pyemail 收邮件 postmail_pyemail 收邮件_04



重启生效



[root@zlj ~]# init 6



在mail.163.com上创建两个帐号 ,无登陆权



[root@mail ~]# useradd user1 -s /sbin/nologin 



[root@mail ~]# useradd user2 -s /sbin/nologin 



修改密码



[root@mail ~]# echo "123" |passwd --stdin user1



[root@mail ~]# echo "123" |passwd --stdin user2



 



pyemail 收邮件 postmail_开发工具_05



在user1上配置outlook



点击工具中的帐号,选择新建一个邮件



 



pyemail 收邮件 postmail_操作系统_06



 



pyemail 收邮件 postmail_开发工具_07



 



pyemail 收邮件 postmail_pyemail 收邮件_08



 



pyemail 收邮件 postmail_pyemail 收邮件_09



这就配置完了



 



pyemail 收邮件 postmail_pyemail 收邮件_10



2、安装接受邮件服务器



需要安装



perl-DBI-1.52-2.el5.i386.rpm  #接受邮件服务器依赖的库



mysql-5.0.77-3.el5.i386.rpm  #接受邮件服务器依赖的库



dovecot-1.0.7-7.el5.i386.rpm  #接受邮件服务器



 



pyemail 收邮件 postmail_操作系统_11



启动



[root@mail init.d]# service dovecot start



[root@mail init.d]# chkconfig dovecot on #设置开机启动



配置访问与中继策略



[root@mail mail]# vim access



Connect:192.168.2                       RELAY



 



pyemail 收邮件 postmail_运维_12



[root@mail mail]# vim local-host-names 



mail.163.com



163.com



 



pyemail 收邮件 postmail_开发工具_13



修改sendmail的配置文件



[root@mail mail]# vim /etc/mail/sendmail.mc



 



pyemail 收邮件 postmail_开发工具_14



重启服务



[root@mail mail]# service sendmail restart



 



pyemail 收邮件 postmail_运维_15



3、搭建dns服务器



将bind-9.3.6-4.P1.el5.i386.rpm、



bind-chroot-9.3.6-4.P1.el5.i386.rpm、



caching-nameserver-9.3.6-4.P1.el5.i386.rpm 装上



[root@mail Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm 



[root@mail Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm 



[root@mail Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm 



 



pyemail 收邮件 postmail_开发工具_16



创建dns配置文件



[root@mail Server]# cd /var/named/chroot/etc/



[root@mail etc]# cp -p named.caching-nameserver.conf named.conf



由于存在两个网段,所以创建子区域



[root@mail etc]# vim named.conf 



 



pyemail 收邮件 postmail_开发工具_17



编辑配置文件



[root@mail etc]# vim named.rfc1912.zones 



zone "163.com" IN {



        type master;



        file "163.com.zone";



        allow-update { none; };



};



 



pyemail 收邮件 postmail_运维_18



给区域添加信息



[root@mail named]# cp -p localhost.zone 163.com.zone



[root@mail named]# vim 163.com.zone



 



pyemail 收邮件 postmail_操作系统_19



$TTL    86400



@               IN SOA  ns.163.com.       root (



                                        42              ; serial (d. adams)



                                        3H              ; refresh



                                        15M             ; retry



                                        1W              ; expiry



                                        1D )            ; minimum



@               IN NS           ns.163.com.



NS              IN A            192.168.1.100



mail            IN A            192.168.1.100



smtp            IN CNAME        mail



pop3            IN CNAME        mail



smtp            IN CNAME        mail



@               IN MX 10        mail 



 



pyemail 收邮件 postmail_操作系统_20



给子区域添加信息



[root@mail named]# cp -p 163.com.zone 163.com.db 



[root@mail named]# vim 163.com.db 



 



pyemail 收邮件 postmail_vim_21



$TTL    86400



@               IN SOA  ns.163.com.       root (



                                        42              ; serial (d. adams)



                                        3H              ; refresh



                                        15M             ; retry



                                        1W              ; expiry



                                        1D )            ; minimum



@               IN NS           ns.163.com.



NS              IN A            192.168.2.100



mail            IN A            192.168.2.100



smtp            IN CNAME        mail



pop3            IN CNAME        mail



smtp            IN CNAME        mail



@               IN MX 10        mail



 



pyemail 收邮件 postmail_vim_22



邮件服务器会做反向dns解析,为了加快它的速度,我们做反向dns



在发送邮件的时候肯定会出现反向dns,所以,创建方向dns



[root@mail named]# vim  /var/named/chroot/etc/named.rfc1912.zones 



zone "2.168.192.in-addr.arpa" IN {



        type master;



        file "192.168.2.zone";



        allow-update { none; };



};



zone "1.168.192.in-addr.arpa" IN {



        type master;



        file "192.168.1.zone";



        allow-update { none; };



};



 



pyemail 收邮件 postmail_开发工具_23



为区域添加信息



[root@mail named]# cp -p named.local 192.168.1.zone 



[root@mail named]# vim 192.168.1.zone 



$TTL    86400



@       IN      SOA     localhost. root.localhost.  (



                                      1997022700 ; Serial



                                      28800      ; Refresh



                                      14400      ; Retry



                                      3600000    ; Expire



                                      86400 )    ; Minimum



        IN      NS      localhost.



100     IN      PTR     mail.163.com.



200     IN      PTR     mail.sina.com.



~                                        



 



pyemail 收邮件 postmail_操作系统_24



[root@mail named]# cp -p 192.168.1.zone 192.168.2.zone 



[root@mail named]# vim 192.168.2.zone 



$TTL    86400



@       IN      SOA     localhost. root.localhost.  (



                                      1997022700 ; Serial



                                      28800      ; Refresh



                                      14400      ; Retry



                                      3600000    ; Expire



                                      86400 )    ; Minimum



        IN      NS      localhost.



100     IN      PTR     mail.163.com.



~                                          



 



pyemail 收邮件 postmail_开发工具_25



启动



[root@mail named]# service named start



[root@mail named]# chkconfig named on #设为开机启动



四、安装 postfix



postfix-2.3.3-2.1.el5_2.i386.rpm     #postfix主程序



 



pyemail 收邮件 postmail_pyemail 收邮件_26



系统默认安装了 sendmail



将 sendmail停掉,将postfix启动



[root@zlj Server]# service sendmail stop  #将其停下



[root@zlj Server]# chkconfig sendmail off  #将其开机自动启动关闭



[root@zlj Server]# service postfix start  #将postfix启动



[root@zlj Server]# chkconfig postfix on  #将postfix加入开机自动启用



 



pyemail 收邮件 postmail_操作系统_27



配置 postmail的主程序



[root@mail Server]# vim /etc/postfix/main.cf



 70 myhostname = mail.163.com  #指出我们的postfix的主机名



77 mydomain = 163.com   #指出主机所在的域



93 myorigin = $mydomain  #指明以谁的身份发送



 



pyemail 收邮件 postmail_开发工具_28



inet_interfaces = all  #指明我们监听的端口



 



pyemail 收邮件 postmail_pyemail 收邮件_29



156 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain  #指明我们发送的目的地



 



pyemail 收邮件 postmail_操作系统_30



[root@mail Server]# service postfix restart  #重启



 



pyemail 收邮件 postmail_运维_31



用同样的方法搭建 sina.com那边的服务器



测试:



163. com 域中的user1给sina.com域中的user4写信



 



pyemail 收邮件 postmail_操作系统_32



发送成功



 



pyemail 收邮件 postmail_运维_33



我们看看日志



 



pyemail 收邮件 postmail_运维_34



在 user4上查看



 



pyemail 收邮件 postmail_运维_35



能够收到



身份认证



[root@mail Server]# vim /etc/postfix/main.cf



broken_sasl_auth_clients = yes  #开启认证



smtpd_sasl_auth_enable = yes  #开启认证



smtpd_sasl_security_options = noanonymous  #不允许匿名



#smtpd_sasl_application_name = smtpd



smtpd_client_restrictions = permit_sasl_authenticated,reject  #允许通过认证的,拒绝其他



#smtpd_client_restrictions = permit_sasl_authenticated



smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination



#允许本网络并且通过认证的,对目的地不限制



 



pyemail 收邮件 postmail_开发工具_36



 



重启postfix和saslauthed



 



测试:



当不配置时,



 



pyemail 收邮件 postmail_vim_37



发送



 



pyemail 收邮件 postmail_vim_38



提示要求身份认证,配置



选择菜单栏中的工具中的帐号



 



pyemail 收邮件 postmail_pyemail 收邮件_39



双击帐号



 



pyemail 收邮件 postmail_pyemail 收邮件_40



选择服务器选项



 



pyemail 收邮件 postmail_操作系统_41



发信



 



pyemail 收邮件 postmail_pyemail 收邮件_42



 



 

 

pyemail 收邮件 postmail_运维_43



发送成功



看看能否收到



 



 

pyemail 收邮件 postmail_操作系统_44



能够收到



五、搭建 web页面



Squirrelmail能够为postmail提供web页面



我们将其安装



首先,配置yum



[root@mail Server]# vim /etc/yum.repos.d/rhel-debuginfo.repo 



[rhel-server]



name=Red Hat Enterprise Linux server



baseurl=file:///mnt/cdrom/Server



enabled=1



gpgcheck=1



gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release



 



pyemail 收邮件 postmail_pyemail 收邮件_45



[root@mail Server]# yum install squirrelmail-1.4.8-5.el5_3.7.noarch  #将其安装



 



pyemail 收邮件 postmail_运维_46



安装成功,我们要让 squirrelmail 能够被访问, 创建软连接



[root@mail Server]# ln -s /usr/share/squirrelmail/ /var/www/html/mail



它给我们一个配置工具,我们用它来给我们的 squirrelmail 配置



 



pyemail 收邮件 postmail_开发工具_47



选择 2进行服务器设置



 



pyemail 收邮件 postmail_开发工具_48



选择 1,设置我们的域名



 



pyemail 收邮件 postmail_操作系统_49



选择 2设置我们的使用的发送服务器



 



pyemail 收邮件 postmail_开发工具_50



选择 R,返回上一级



 



pyemail 收邮件 postmail_操作系统_51



选择 10,配置我们的语言



 



pyemail 收邮件 postmail_vim_52



设置我们的语言为简体中文



 



pyemail 收邮件 postmail_pyemail 收邮件_53



选择 2,设置我们编码方式为GB2312



 



pyemail 收邮件 postmail_操作系统_54



选择R,返回上一级



 



pyemail 收邮件 postmail_开发工具_55



选择 S,保存



 



pyemail 收邮件 postmail_开发工具_56



选择 Q,推出



 



pyemail 收邮件 postmail_vim_57



[root@mail Server]# service httpd start  #启动apache



六、测试



登陆

 


pyemail 收邮件 postmail_pyemail 收邮件_58



它提示我们



Transaction failed
Server replied: 554 5.7.1 <mail.163.com[127.0.0.1]>: Client host rejected: Access denied
说明认证出错了,我们将认证关了。



[root@mail Server]# vim /etc/postfix/main.cf


#smtpd_client_restrictions = permit_sasl_authenticated,reject  #将它关了



 



pyemail 收邮件 postmail_pyemail 收邮件_59



[root@mail Server]# service postfix restart  #重启



再次发送就能成功



 



pyemail 收邮件 postmail_开发工具_60



查收



 



pyemail 收邮件 postmail_开发工具_61


转载于:https://blog.51cto.com/zhoulinjun/1190021