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:放置不能被投递的邮件。
下面我们来看看它的搭建
 

配置
1、 给主机改名
编辑配置文件
[root@zlj ~]# vim /etc/sysconfig/network
 

 

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

重启生效
[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
 

在user1上配置outlook
点击工具中的帐号,选择新建一个邮件
 

 

 

 

这就配置完了
 

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  #接受邮件服务器
 

启动
[root@mail init.d]# service dovecot start
[root@mail init.d]# chkconfig dovecot on #设置开机启动
配置访问与中继策略
[root@mail mail]# vim access
Connect:192.168.2                       RELAY
 

[root@mail mail]# vim local-host-names 
mail.163.com
163.com
 

修改sendmail的配置文件
[root@mail mail]# vim /etc/mail/sendmail.mc
 

重启服务
[root@mail mail]# service sendmail restart
 

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 
 

创建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 
 

编辑配置文件
[root@mail etc]# vim named.rfc1912.zones 
zone "163.com" IN {
        type master;
        file "163.com.zone";
        allow-update { none; };
};
 

给区域添加信息
[root@mail named]# cp -p localhost.zone 163.com.zone
[root@mail named]# vim 163.com.zone
 

$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 
 

给子区域添加信息
[root@mail named]# cp -p 163.com.zone 163.com.db 
[root@mail named]# vim 163.com.db 
 

$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
 

邮件服务器会做反向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; };
};
 

为区域添加信息
[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.
~                                        
 

[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.
~                                          
 

启动
[root@mail named]# service named start
[root@mail named]# chkconfig named on #设为开机启动
四、安装 postfix
postfix-2.3.3-2.1.el5_2.i386.rpm     #postfix主程序
 

系统默认安装了 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加入开机自动启用
 

配置 postmail的主程序
[root@mail Server]# vim /etc/postfix/main.cf
 70 myhostname = mail.163.com  #指出我们的postfix的主机名
77 mydomain = 163.com   #指出主机所在的域
93 myorigin = $mydomain  #指明以谁的身份发送
 

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

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

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

用同样的方法搭建 sina.com那边的服务器
测试:
163. com 域中的user1给sina.com域中的user4写信
 

发送成功
 

我们看看日志
 

user4上查看
 

能够收到
身份认证
[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
#允许本网络并且通过认证的,对目的地不限制
 

 
重启postfix和saslauthed
 
测试:
当不配置时,
 

发送
 

提示要求身份认证,配置
选择菜单栏中的工具中的帐号
 

双击帐号
 

选择服务器选项
 

发信
 

 

 

 

发送成功
看看能否收到
 

 

能够收到
五、搭建 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
 

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

安装成功,我们要让 squirrelmail 能够被访问, 创建软连接
[root@mail Server]# ln -s /usr/share/squirrelmail/ /var/www/html/mail
它给我们一个配置工具,我们用它来给我们的 squirrelmail 配置
 

选择 2进行服务器设置
 

选择 1,设置我们的域名
 

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

选择 R,返回上一级
 

选择 10,配置我们的语言
 

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

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

选择R,返回上一级
 

选择 S,保存
 

选择 Q,推出
 

[root@mail Server]# service httpd start  #启动apache
六、测试
登陆

 
 

 

它提示我们
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  #将它关了
 

[root@mail Server]# service postfix restart  #重启
再次发送就能成功
 

查收