延迟投递时间

在某些情况下,你可能会希望postfix先收下邮件,但不立刻投递出去。等到你下达

posqueue -f domain命令之后,或是postfix从支持快速清空功能的网域收到ETRN

SMTP命令之后,postfix才递送出被暂扣留的邮件。

最常见的一种情况是ISP为客户的网域代收邮件,但是客户的网络并不总是保持连接。

ISP必须先储存邮件,直到客户的网络恢复连接,并且能收下邮件为止。类似的情况还有

客户网络上的用户,应该要能够通过本地的邮件网关来寄信,该网关必须能先暂存外寄

邮件,直到网络恢复连接时才投递出去。

暂缓转发邮件

在以下的程序中,我们要先创建一种新型的传输法,称为“ondemand”,然后设定传输

表,要求所有寄到example.com网域的邮件,一律先暂时扣留在队列里。

1。 在master.cf设置一种新的传输法,并命名为ondemand。它的配置应该与smtp传

输法一样

ondemand unix - - n - - smtp

2、要求postfix自动延缓任何通过ondemand递送的邮件。只要将新设的ondemand传输法

列在main.cf的defer_transports参数中,就可以达到自动延缓的效果:

defer_transports = ondemand

3、 确定transport_maps参数指向我们的传输表:

transport_maps = hash:/etc/postfix/transport

4、编辑修改传输表,使得example.com网域的所有邮件都通过ondemand传输法来投递:

example.com ondemand

5、运行postmap将传输表转换成数据库格式:

postmap /etc/postfix/transport

6、要求postfix重新读取配置文件,使我们所做的改变开始生效:

postfix reload

现在,所有要寄到example.com网域的邮件都会被扣留在队列里,直到你下达以下命令为

止:

postqueue -f example.com

暂缓投递外地邮件

假设有一个小型办公室网络,他们与Internet之间没有连接,而是由网管人员架设呢一

台邮件服务器来接收内部员工寄到外界的邮件。网管人员希望能够控制外地邮件的投递

时间,让postfix只有在有连接时才送出外地邮件。

1、 将smtp服务名称列在main.cf的defer_transports参数中:

defer_transports = smtp

2、要求postfix重新加载配置文件,使我们的改变生效:

postfix reload

以后,每当办公室网络与Internet接通时,网管人员就可以使用postqueue -f命令来送

出所有外地邮件。

入站邮件网关

邮件网关是一种能收下邮件然后将其转交给其他系统的邮件服务器系统。在在网络术语

中,“网关"一词的意义有两个:一是物理上的含义,代表某个网络到达另一个网络的必

经通路;另一层含义是协议的转换,将一种协议所传达的信息以另一个协议传到目标系

统。

邮件网关通常被设置在企业网络与Internet之间,甚至与防火墙系统搭配在一起,以尽

可能减少需要直接访问Internet的服务器数量。

假设有一个企业网络,这家企业有多个部门,各部门都有自己的子网域,也有自己的内

部邮件服务器。网关系统gw.example.com负责收下企业网络的所有邮件。假设人力资源

部门的邮件系统位于mail.example.com,此部门员工的邮件地址是

user@hr.example.com;业务部门的邮件系统位于mail2.example.com,他们的邮件地

址格式是user@sales.example.com。每个字网络上的主机,应该分别从他们各自的内部

邮件服务器取信。邮件网关gw.example.com必须设置传输表,才能将收下的邮件交付给

正确的内部邮件服务器。

下列程序示范要如何设定gw.example.com,才能使它将邮件交给正确的内部服务器。

1、确定hr.example.com与sales.example.com的DNS mx记录都指向gw.example.com网

2、编辑网关系统的main.cf配置文件,将两个子网域列入relay_domains参数:

relay_domains = hr.example.com, sales.example.com

3、确定transport_maps参数指向正确的传输表“

transport_maps = hash:/etc/postfix/transport

4、编辑修改传输表内容,将各网域指向正确的内部服务器:

transport maps

hr.example.com relay:[mail.example.com]

sales.example.com relay:[mail2.example.com]

注意,内部邮件服务器的主机名是放在一对方括号内,这使得网关系统可跳过mx查询,

而直接将邮件递送到主机名称所对应的ip地址。

5、重新加载配置文件,使改变生效:

postfix reload

郑重建议你将mail与mail2的所有合法邮箱列表汇整成一个查询表,放在gw系统上,并将

网关系统的relay_recipient_maps参数指向查询表;否则,gw.example.com将会收下

许多垃圾邮件。

出站邮件网关

若邮件系统没有足够的信息或能力将邮件直接送达目的地,它可将邮件交给位于更有利

位置的其他系统,间接送到目的地。假设那两个内部邮件系统不能直接访问 Internet,

它们不能将字网络上的用户寄到外地的邮件直接递送到目的地,但它们可以将所有外地

邮件都托付给网关系统,由网关代为递送。下列步骤示范如何设定mail.example.com上

的postfix server,使它将收下的所有外地邮件都交给gw.example.com。

在开始设定内部邮件系统之前,请确定邮件网关已被设定成能接收内部邮件系统的转发

要求。网关系统的mynetworks参数应该涵盖内部邮件系统的所有 ip地址;此外,如果

网关系统使用了smtp ube过滤规则,请确定permit_mynetworks被列在过滤规则里。

1、在各部门的办公室贴公告,告诉你的同事,要求他们设定MUA使用的内部邮件系统(mail1 mail2。。。)为smtp server

2、设定内部邮件系统(mail1与mail2)的mynetworks(或mynetworks_style)参数,确定子网络上的全部客户端系统都涵盖在内。

3、编辑内部邮件系统的main.cf,将relayhost参数指向网关系统:

relayhost = 〔gw.example.com〕

4、重新加载postfix配置文件,使改变生效:

postfix reload

现在,所有送到mail.example.com的外地邮件,都会通过gw.example.com送到目的地。

UUCP、传真以及其他投递机制

postfix的在线文件描述了如何设定postfix使其将邮件交给传真机系统以及如何使用postfix来架设UUCP网关。当你的postfix需要与任何特殊设备接轨时,这些例子提供了很好的参考。原则上,如果你需要在不同类型的系统或网络之间架设网关,传输表提供了引导邮件到其他系统或设备的机制。

通过上面文章,我们可以清楚的知道Postfix邮件转发的一些附属知识,能更容易的掌握Postfix邮件转发的功能。

  • Postfix虚拟网络域名
  • Postfix里的POP与Imap介绍
  • Postfix的投递过程详解
  • Postfix中的地址操作大全
  • 教你如何设置Postfixadmin的自动回复
  • Postfix的邮件队列管理
  • 如何安装PostfixAdmin


相关内容