如何通过SMTP中继(可能是Sendmail)延迟邮件传递 [英] How can I delay mail delivery through an SMTP relay, possibly sendmail

查看:37
本文介绍了如何通过SMTP中继(可能是Sendmail)延迟邮件传递的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要求通过SMTP中继延迟邮件传递。

邮件在时间T成功接收。 在时间T+4小时将邮件转发到目的地。

是否可以在Sendmail或任何其他SMTP中继中执行此操作。

部署平台为IBM AIX。

推荐答案

您的问题至少应该更具体一点。不管怎样,我还是会提一些建议的。

如果您只想每四小时传递一次邮件,则必须在仅队列模式下运行Sendmail(在sendmail.conf中),并将队列设置为每四小时运行一次(Queue_Interval="4h";)。我认为,这只适用于类似Debian的系统,但原则在任何地方都是一样的-您将队列模式设置为cron(这实际上是由参数控制的,用来启动Sendmail),然后定期处理它。

如果您只想延迟邮件传递,也有多种方法可以做到这一点,具体取决于您要这样做的原因。一种流行的解决方案是灰名单,它只执行以下操作-当主机连接到您的MTA(sendmail,f.ex.)时,它会弹出提示,要求在某个时间间隔内重试。正确配置的邮件发送程序会尝试再次发送邮件,最终邮件将被接受并投递(或转发)。另一方面,大多数垃圾邮件机器人在收到错误时不会尝试重新发送消息。如果您需要在Sendmail上列出灰色列表,可以在此处阅读:http://www.greylisting.org/implementations/sendmail.shtml

希望这至少有一点帮助。

编辑:

好的,那么现在我知道您需要做什么了。以下是使用Sendmail的可能解决方案(我多年来一直以这样或那样的方式处理Sendmail,所以..:p):您使用其中的两个。

第一个只接收邮件并将其排队,并且(这一点很重要)它不会处理队列。第二个Sendmail实例运行一个单独的队列,其Queue_MODE被设置为daemon或cron(比方说每分钟)。现在,您所需要的就是编写一个外部脚本,一旦达到消息的"年龄",该脚本将把邮件从第一个队列移动到第二个队列。因为队列项只是文件,所以这是一项简单的任务,只需几行Perl就可以完成(见鬼,一个外壳脚本也可以做到这一点)。将队列项从一个队列移动到另一个队列就像将文件从一个目录移动到另一个目录一样简单。请注意,这种技术在邮件处理解决方案中被广泛使用,例如垃圾邮件刺客,所以这不是我已故的心灵召唤出的一些奇怪的东西:p

希望这能给您一些提示。

这篇关于如何通过SMTP中继(可能是Sendmail)延迟邮件传递的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆