在RHEL 6中,Postfix默认已安装并随机启动。有两个文件很重要,如下:
主配文件 /etc/postfix/main.cf
进程文件 /etc/postfix/master.cf
在实际操作中,修改主配文件,主要涉及到的几个参数是(前面的数字是初始时的行号):
75 #myhostname = host.domain.tld
注:myhostname 参数指定运行postfix邮件系统的主机的主机名。缺省地,该值被设定为本地机器名。可以指定该值,需要注意的是,要指定完整的主机名。如:myhostname = zero.domain.com
83 #mydomain = domain.tld
注:mydomain参数指定域名,缺省地,postfix将myhostname的第一部分删除而作为mydomain的值。
99 #myorigin = $mydomain
注:myorigin参数指明发件人所在的域名。如果用户的邮件地址为user@domain.com,则该参数指定@后面的域名。缺省地,postfix使用本地主机名作为myorigin,但是建议最好使用域名,因为这样更具有可读性。比如:安装postfix的主机为zero.domain.com则我们可以这样指定myorigin: myorigin = domain.com。当然也可以引用其他参数,如:myorigin = $mydomain。
116 inet_interfaces = localhost
注:inet_interfaces 参数指定postfix系统监听的网络接口。缺省地,postfix监听所有的网络接口。如果postfix运行在一个虚拟的ip地址上,则必须指定其监听的地址。如:inet_interfaces = all, inet_interface = 192.168.1.1
164 mydestination = $myhostname, localhost.$mydomain, localhost
注:mydestination参数指定postfix接收邮件时收件人的域名,换句话说,也就是postfix系统要接收什么样的邮件。比如:用户的邮件地址为user@domain.com,也就是域为domain.com,则你就需要接收所有收件人为user_name@domain.com的邮件。与myorigin一样,缺省地,postfix使用本地主机名作为mydestination。如:mydestination = $mydomain,mydestination = domain.com
264 #mynetworks = 168.100.189.0/28, 127.0.0.0/8
mynetworks 参数指定所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问。可以用标准的A、B、C类网络地址,也可以用CIDR(无类域间路由)地址来表示,如:192.168.1.0/24, 192.168.1.0/26
546 #header_checks = regexp:/etc/postfix/header_checks
注:在postfix中,通过header_checks参数限制接收邮件的信头的格式,如果符合指定的格式,则拒绝接收该邮件。可以指定一个或多个查询列表,如果新邮件的信头符合列表中的某一项则拒绝该接收邮件。
一、准备工作
本实验平台为CentOS 6.2。
先确定主机名是带域名的形式。如果不带,请使用hostname命令更名,并修改/etc/sysconfig/network文件中HOSTNAME的值。
查看主机名
[root@zero ~]# hostname
zero.sq.com
二、去掉邮件地址中的主机头
1.在不修改任何配置的情况下,管理员root向普通用户sqing发邮件test01。
[root@zero ~]# mail sqing
Subject: test01
00000000000001111111111111111
.
EOT
在另一个终端使用sqing登录查看
[sqing@zero ~]$ mail
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/sqing": 1 message 1 new
>N 1 root Wed May 22 02:41 18/560 "test01"
& 1
Message 1:
From root@zero.sq.com Wed May 22 02:41:49 2013
Return-Path:
X-Original-To: sqing
Delivered-To: sqing@zero.sq.com
Date: Wed, 22 May 2013 02:41:49 +0800
To: sqing@zero.sq.com
Subject: test01
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: root@zero.sq.com (root)
Status: R
00000000000001111111111111111
& q
可以看到,此时邮件的发件人和收件人的邮件地址,域名部分显示的是主机头加域名,如root@zero.sq.com,但在实际中,一船是不带主机名的,只使用主机所在域的域名,如root@sq.com
2.为了达到这个效果,需要进行以下修改,
将mydomain和myorigin开启,并将mydomain的值改为sq.com。
同时,还要修改,mydestination的值,否则,邮件发出后,对方收不到,而自己这边又没有退信邮件。
[root@zero ~]# cat /etc/postfix/main.cf
重启服务,restart或reload
[root@zero ~]# service postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
再测试
管理员root向普通用户sqing发邮件test02。
[root@zero ~]# mail sqing
Subject: test02
000000000000000022222222222222222
.
EOT
在root用户登录的终端查看sqing的邮件
[root@zero ~]# mail –u sqing
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/sqing": 2 messages 1 new
1 root Wed May 22 02:41 19/571 "test01"
>N 2 root Wed May 22 03:03 18/539 "test02"
& 2
Message 2:
From root@sq.com Wed May 22 03:03:20 2013
Return-Path:
X-Original-To: sqing
Delivered-To: sqing@sq.com
Date: Wed, 22 May 2013 03:03:20 +0800
To: sqing@sq.com
Subject: test02
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: root@sq.com (root)
Status: R
000000000000000022222222222222222
& q