分类:
2010-07-16 14:02:09
与Sendmail相比,Postfix最被人称道的地方就在于其配置文件的可读性很高。Postfix的主配置文件是/etc/postfix /main.cf。虽然该配置文件的内容比较多,但其中大部分内容都是注释(“#”号开头的行),真正需要自行定义的参数并不多,而且这些参数就算不去定义,按照默认值也可以运行,只不过它只监听127.0.0.1这个接口的邮件收发。如果要使它能够支持客户端完成最基本的邮件收发任务,通常还需要进行下面的设置。
注记:在main.cf文件中,参数都是以类似变量的设置方法来设置的,例如要设置 |
1.设置运行Postfix服务的邮件主机的主机名、域名
用myhostname参数指定运行Postfix服务的邮件主机的主机名称(FQDN名),用mydomain参数指定该主机的域名称。当然这两个参数也可以不进行设置,缺省情况下,myhostname参数被设置为本地主机名,而且Postfix会自动将myhostname参数值的第一部分删除并将其余部分作为mydomain参数的值。
myhostname = mail.gdvcp.net |
2.设置由本机寄出的邮件所使用的域名或主机名称
myorigin参数实际上是设置由本台邮件主机寄出的每封邮件的邮件头中mail from的地址。由于Postfix默认使用本地主机名作为myorigin参数的值,因此一封由本地邮件主机寄出的邮件的邮件头中就会含有如 “From:‘lbt’<>” 这样的内容,它表明这封邮件是从mail.gdvcp.net主机发来的。不过,建议读者将myorigin参数设置为本地邮件主机的域名(即 “myorigin = gdvcp.net或$mydomain”),这样一封由本地邮件主机寄出的邮件的邮件头中就会含有如“From:‘lbt’<>”这样的内容,显然更具有可读性。
myorigin = $mydomain |
3.设置Postfix服务监听的网络接口
默认情况下,inet_interfaces参数的值被设置为localhost,这表明只能在本地邮件主机上寄信。如果邮件主机上有多个网络接口,而又不想使全部的网络接口都开放Postfix服务,就可以用主机名指定需要开放的网络接口。不过,通常是将所有的网络接口都开放,以便接收从任何网络接口来的邮件,即将inet_interfaces参数的值设置为“all”。
inet_interfaces = all |
4.设置可接收邮件的主机名称或域名
mydestination参数非常重要,因为只有当发来的邮件的收件人地址与该参数值相匹配时,Postfix才会将该邮件接收下来。例如,这里将该参数值设置为$mydomain和$myhostname,表明无论来信的收件人地址是(其中xxx表示某用户的邮件账户名),还是,Postfix都会接收这些邮件。
mydestination = $mydomain, $myhostname |
5.设置可转发(Relay)哪些网络的邮件
可以使用mynetworks参数来设置。可将该参数值设置为所信任的某台主机的IP地址,也可设置为所信任的某个IP子网或多个IP子网(用“,”或者“ ”分隔)。这里,将mynetworks参数值设置为192.168.16.0/24,则表示这台邮件主机只转发子网192.168.16.0/24中的客户端所发来的邮件,而拒绝为其他子网转发邮件。
mynetworks = 192.168.16.0/24 |
除了mynetworks参数外,还有一个用于控制网络邮件转发的参数是mynetworks-style, |
6.设置可转发哪些网域的邮件
mynetworks参数是针对邮件来源的IP来设置的,而relay_domains参数则是针对邮件来源的域名或主机名来设置的。例如,将该参数值设置为gdvcp.net,则表示任何由域gdvcp.net发来的邮件都会被认为是信任的,Postfix会自动对这些邮件进行转发。
relay_domains = gdvcp.net |
完成了上面的基本设置后,重新启动Postfix服务,这台Postfix邮件主机就基本准备好了。但是目前它仅支持客户端发信,还不支持收信。
此外,要使它能在单位内部网络中更好地转发邮件,还必须进行DNS设置。本例中,在内部网络的DNS服务器上定义了一个主区域gdvcp.net,并在该区域配置文件中定义了以下记录
(除定义了SOA、NS记录外):
rhel5.gdvcp.net. IN A 192.168.16.177 |
技巧:当编辑好Postfix主配置文件/etc/postfix/main.cf后,为了便于调试, |