📄 1393.html
字号:
5.确定/etc/aliases文件中包含如下的条目:<br>
<br>
postfix: root<br>
<br>
6. 以root用户登录,在/tmp/ postfix-19991231-pl08目录下执行命令:<br>
<br>
./INSTALL.sh<br>
<br>
7. 启动postfix<br>
<br>
# postfix start<br>
<br>
8.关于maildrop目录权限的说明:<br>
<br>
postfix可以使用一个所有用户都可写的(也即目录权限为1773)的maildrop目录来让本地用户提交邮件。这种方法避免了使用set- uid 或 set-gid 软件,并且在邮件系统不可用时,用户仍然可以提交邮件。其他用户没有访问该目录中的队列文件的权限。接收来自网络的邮件时postfix不使用 maildrop目录。但是,由于该目录的权限是733,其他用户可以建立一个硬连接到该目录中的文件从而导致该邮件被投递多次或无法删除,也就是说这将导致安全性问题。如果你想要使用这种方式来让用户提交邮件,就要在INSTALL.sh 脚本问你是否需要set-gid 时回答no。<br>
<br>
如果你的系统有多个用户的话,最好取消以上的方式而采用利用set-gid 用户权限提交邮件的方式。这时,我们首先需要建立一个组id唯一的组'maildrop' 并且确定该组中没有用户成员。然后在INSTALL.sh 问你是否需要set-gid 时指定'maildrop'。<br>
<br>
提示:在安装postfix之前,请删除已经安装的sendmail。<br>
<br>
3.2 rpm包的安装<br>
1. 获取postfix的rpm软件包。<br>
<br>
我们可以从http://www.alltrading.es/postfix/RPMS/i386/ 获得postfix的rpm软件包。当前的最新版本是postfix-20000531-2.i386.rpm。<br>
<br>
2. 备份你的/etc/aliases和/etc/aliases.db,因为postfix要使用该别名数据库。<br>
<br>
3. 用以下命令查看系统是否安装了sendmail:<br>
<br>
[root@mail /root]# rpm -qa |grep sendmail<br>
sendmail-doc-8.9.3-15<br>
sendmail-8.9.3-15<br>
sendmail-cf-8.9.3-15<br>
<br>
4. 用以下命令强行卸载sendmail:<br>
<br>
[root@mail /root]# rpm -e sendmail sendmail-cf sendmail-doc --nodeps<br>
<br>
5. 用以下命令杀死运行中的sendmail进程:<br>
<br>
[root@mail /root]# killall sendmail<br>
<br>
6. 安装postfix:<br>
<br>
[root@mail /root]# rpm -Uvh postfix-20000531-2.i386.rpm<br>
postfix ##################################################<br>
postfix-script: warning: creating missing Postfix pid directory<br>
postfix-script: warning: creating missing Postfix incoming directory<br>
postfix-script: warning: creating missing Postfix active directory<br>
postfix-script: warning: creating missing Postfix bounce directory<br>
postfix-script: warning: creating missing Postfix defer directory<br>
postfix-script: warning: creating missing Postfix deferred directory<br>
postfix-script: warning: creating missing Postfix saved directory<br>
postfix-script: warning: creating missing Postfix corrupt directory<br>
postfix-script: warning: creating missing Postfix public directory<br>
postfix-script: warning: creating missing Postfix private directory<br>
[root@mail /root]#<br>
<br>
7. 启动postfix<br>
<br>
[root@mail /root]# /etc/rc.d/init.d/postfix start<br>
<br>
3.3 配置系统每次启动时自动启动postfix<br>
1.如果你安装的是postfix的源代码包,可以在/etc/rc.d/rc.local文件中加入如下的语句让系统每次启动时自动启动postfix:<br>
<br>
if [ -f /usr/libexec/postfix ]; then<br>
/usr/libexec/postfix start<br>
fi<br>
<br>
2.如果你安装的是postfix的rpm包,可以通过setup命令来设置在系统启动时启动postfix。<br>
<br>
四、 postfix的配置详解<br>
4.1 postfix的配置文件结构<br>
postfix的配置文件位于/etc/postfix下,安装完postfix以后,我们可以通过ls命令查看postfix的配置文件:<br>
<br>
[root@mail postfix]# ls<br>
install.cf main.cf master.cf postfix-script<br>
<br>
这四个文件就是postfix最基本的配置文件,它们的区别在于:<br>
<br>
mail.cf:是postfix主要的配置文件。<br>
Install.cf:包含安装过程中安装程序产生的postfix初始化设置。<br>
master.cf:是postfix的master进程的配置文件,该文件中的每一行都是用来配置postfix的组件进程的运行方式。<br>
postfix-script:包装了一些postfix命令,以便我们在linux环境中安全地执行这些postfix命令。<br>
<br>
4.2 postfix的基本配置<br>
postfix大约有100个配置参数,这些参数都可以通过main.cf 指定。配置的格式是这样的,用等号连接参数和参数的值。如:<br>
<br>
myhostname = mail.mydomain.com<br>
<br>
等号的左边是参数的名称,等号的右边是参数的值; 当然,我们也可以在参数的前面加上$来引用该参数,如:<br>
<br>
myorigin = $myhostname<br>
<br>
虽然postfix有100个左右的参数,但是postfix为大多数的参数都设置了缺省值,所以在让postfix正常为你服务之前,你只需要配置为数不多的几个参数。下面我们一起来看一看这些基本的postfix参数。需要注意的是,一旦你更改了main.cf文件的内容,则必须运行postfix reload命令使其生效。<br>
<br>
1. myorigin<br>
<br>
myorigin参数指明发件人所在的域名。如果你的用户的邮件地址为user@domain.com,则该参数指定@后面的域名。缺省地,postfix使用本地主机名作为myorigin,但是建议你最好使用你的域名,因为这样更具有可读性。比如:安装postfix的主机为mail.domain.com则我们可以这样指定myorigin:<br>
<br>
myorigin = domain.com<br>
<br>
当然我们也可以引用其他参数,如:<br>
<br>
myorigin = $mydomain<br>
<br>
2. mydestination<br>
<br>
mydestination参数指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix系统要接收什么样的邮件。比如:你的用户的邮件地址为user@domain.com, 也就是你的域为domain.com, 则你就需要接收所有收件人为user_name@domain.com的邮件。与myorigin一样,缺省地,postfix使用本地主机名作为 mydestination。如:<br>
<br>
mydestination = $mydomain<br>
mydestination = domain.com<br>
<br>
3. notify_classes<br>
<br>
在postfix系统中,必须指定一个postfix系统管理员的别名指向一个用户,<br>
只有这样,在用户遇到问题时才有报告的对象,postfix也才能将系统的问题报告给管理员。notify_classes参数就是用来指定向postfix管理员报告错误时的信息级别。共有以下几种级别:<br>
<br>
bounce:将不可以投递的邮件的拷贝发送给postfix管理员。出于个人隐私的缘故,该邮件的拷贝不包含信头。<br>
<br>
2bounce:将两次不可投递的邮件拷贝发送给postfix管理员。<br>
<br>
delay:将邮件的投递延迟信息发送给管理员,仅仅包含信头。<br>
<br>
policy:将由于UCE规则限制而被拒绝的用户请求发送给postfix管理员,包含整个SMTP会话的内容。<br>
<br>
protocol:将协议的错误信息或用户企图执行不支持的命令的记录发送给postfix管理员。同样包含整个SMTP会话的内容。<br>
<br>
resource:将由于资源错误而不可投递的错误信息发送给postfix管理员,比如:队列文件写错误等等。<br>
<br>
software:将由于软件错误而导致不可投递的错误信息发送给postfix管理员。<br>
<br>
缺省值为:<br>
<br>
notify_classes = resource, software<br>
<br>
4.myhostname<br>
<br>
myhostname 参数指定运行postfix邮件系统的主机的主机名。缺省地,该值被设定为本地机器名。你也可以指定该值,需要注意的是,要指定完整的主机名。如:<br>
<br>
myhostname = mail.domain.com<br>
<br>
5.mydomain<br>
<br>
mydomain参数指定你的域名,缺省地,postfix将myhostname的第一部分删除而作为mydomain的值。你也可以自己指定该值,如:<br>
<br>
mydomain = domain.com<br>
<br>
6.mynetworks<br>
<br>
mynetworks 参数指定你所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问。你可以用标准的A、B、C类网络地址,也可以用CIDR(无类域间路由)地址来表示,如:<br>
<br>
192.168.1.0/24<br>
192.168.1.0/26<br>
<br>
7.inet_interfaces<br>
<br>
inet_interfaces 参数指定postfix系统监听的网络接口。缺省地,postfix监听所有的网络接口。如果你的postfix运行在一个虚拟的ip地址上,则必须指定其监听的地址。如:<br>
<br>
inet_interfaces = all<br>
inet_interface = 192.168.1.1<br>
<br>
4.3 postfix的UCE(unsolicited commercial email)控制<br>
所谓UCE控制就是指控制postfix接收或转发来自于什么地方的邮件。<br>
<br>
缺省地,postfix转发符合以下条件的邮件:<br>
<br>
* 来自客户端ip地址符合$mynetworks的邮件。<br>
* 来自客户端主机名符合$relay_domains及其子域的邮件。<br>
* 目的地为$relay_domains及其子域的邮件。<br>
<br>
缺省地,postfix接受符合以下条件的邮件:<br>
<br>
* 目的地为$inet_interfaces的邮件。<br>
* 目的地为$mydestination的邮件。<br>
* 目的地为$virtual_maps的邮件。<br>
<br>
但是我们也可以通过下面的规则来实现更强大的控制功能。<br>
<br>
1. 信头过滤<br>
<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -