2009-04-24 77 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連接器時,將其設置爲使用其他端口進行偵聽。這樣你可以發送到那個而不是標準連接器。