2009-04-24 78 views
0

我有一个PHP脚本,做一些处理(创建汇款通知书PDF,自我开单发票,Sage CSV文件等),并在最后输出带有表格的屏幕,其中显示付费人员的姓名和电子邮件地址。用户通过点击复选框选择姓名,然后发送一个发送按钮,发送附有汇款通知书和自行开票发票的电子邮件。这一切都很好,但他们现在决定,当他们点击发送按钮时,他们希望电子邮件不是直接发送,而是在晚上6点。如何推迟发送电子邮件?点击按钮立即发送,但等到下午6点,直到电子邮件实际发送

是否可以在SMTP标头中设置邮件的发送时间? MS Exchange服务器是否可以配置,以便特定发件人的电子邮件将保留到发送前一定时间? IT支持部门。声称它在过去的拨号连接时是可能的,当它在晚上发送东西时更便宜...但是这个功能已被删除。这是真的?我不知道手头的任务有多难。看起来非常简单,我想这对于IT支持人员来说确实是一个任务。但也许我错了?

如果这不能在Exchange服务器端设置,我该如何去实现所需的功能?而且,不,这不是this question的确切副本。我看了看,但似乎没有回答我的问题。任何帮助非常感谢!

编辑


阿帕奇在MS Windows Server 2003的数据库是运行的Oracle 10g。将没有成立CRON。电子邮件队列表也需要存储所有附件。我想不惜一切代价避免这样做。没有办法指定在头部的调度时间?

+0

但是,如果它不是与ms交换可行,那么你链接的问题的答案是我会给的。将每封电子邮件存储为待处理任务,在6处运行cronjob,发送所有待处理任务。 – markus 2009-04-24 13:12:29

+0

我在我的问题中添加了一些细节。 – 2009-04-24 13:26:08

回答

11

您可以将这些电子邮件保存到数据库中。然后创建一个每隔几分钟执行一次的cronjob PHP文件,以检查是否有电子邮件在“队列”数据库中发送。

Here's a tutorial就像这样。

+0

+1对于CRON工作 – 2009-04-24 13:12:58

2

Windows(非服务器版本,至少)具有类似于CRON的“计划任务”控制面板项目。只需简单地看一下,就可以编写一个PHP脚本,它可以“立即”发送邮件,但在任何时候使用计划任务发送邮件时都可以使用CLI运行它。

3

其实你可以做到这一点。如果您使用Exchange 2003服务器,则可以设置不同的SMTP连接器。在交付选项下,有一种方法可以改变它从发送任何您选择的模式。

这是一个很好的教程,用于设置一个。 link text

您需要做的一件事就是当您创建新的SMTP连接器时,将其设置为使用其他端口进行侦听。这样你可以发送到那个而不是标准连接器。