2010-06-01 85 views
3

關於an earlier question我正在尋找一種替代方式將訂單從我的網站發送到我的公司處理訂單的部門。PHP郵件的替代方案

目前我使用PHP郵件(),但通常這會產生問題。大的延遲發生。是否有替代PHP郵件()命令我的公司?所以我寧願不去投票調查網站。

+0

你知道爲什麼會有延遲嗎? SMTP/Sendmail配置? DNS路由?等等。 – allnightgrocery 2010-06-01 13:05:45

回答

5

mail()適用於簡單的東西,但通常您需要一個更強大的庫來解決PHP中的郵件問題。

我個人的選擇是Swift Mailer

而且從閱讀您的其他問題,這會是有益的

  • 您的應用程序寫入訂單電子郵件數據庫,在隊列中。
  • 你有一個Cron運行,每10分鐘發送30封電子郵件。
  • 然後它刪除最後發送的30個,準備好在10分鐘內再次處理。

好處是,當你有一個電子郵件隊列發送出去,他們可以批量處理,並且如果郵件發生故障,你也可以在數據庫中有一個副本。查詢數據庫會更容易,然後追蹤未送達的郵件(或遲交)。

+0

他在他之前的問題中表示他反對將訂單存儲在數據庫中。 – amphetamachine 2010-06-01 13:06:50

-1

使用SMTP發送訂單具有固有的不安全性。更不用說由使用郵件服務器引起的所有路由,垃圾郵件檢查等引起的延遲。您確定需要通過電子郵件發送訂單嗎?服務器到服務器的HTTP傳輸(可能是基於XML的)傳輸線更不是更好的選擇嗎?

您可以在處理部門中使用第二臺服務器,該服務器將通過受保護的(防火牆)連接從您的Web服務器接收訂單,該連接將處理訂單,在此情況下,可使訂單處理部門誰閱讀和處理訂單。

1

目前我使用PHP郵件(),但通常這會產生問題。

我會打賭你很多錢,它不會經常給出問題。

我有從來沒有遇到PHP郵件功能的問題。我看到了郵件的錯誤php.ini設置的問題,以及在離開PHP後之後處理郵件的程序出現了一系列問題。您對「頻繁」這個詞的使用意味着它在某些時候會起作用,因此,在沒有經常更新php.ini的情況下,這些問題都出現在您的郵件處理基礎架構上。

事實上 - 我建議你去看看PHP的錯誤列表 - 會有很多的有關獲取從腳本郵寄到用戶收件箱的問題報告 - 但他們沒有就會因的失敗PHP代碼。

因此,如果問題在別處,使用替換SMTP客戶端將有沒有任何效果(除非您將其配置爲繞過錯誤的MTA)。

瞭解電子郵件的工作原理以及失敗的原因遠不是微不足道的。當你加入這個組合時,有些人爲了防止垃圾郵件而去了(通常沒有記錄),它開始變得非常複雜。即使你已經給出了你的基礎設施和配置的確切細節,甚至很難猜測爲什麼以及如何失敗。

當然,您需要先查看電子郵件日誌和標題,然後檢查MTA和MUA配置以開始解決問題。

C.

+0

你是對的我有問題在我的服務器中設置郵件實際發送出去。任何建議? – Si8 2013-10-04 02:31:03

+0

您似乎目前正在使用sendmail - 這是一款出色的工具,通常非常可靠 - 但它需要很多技能來配置和管理。由於它非常可靠,並且在配置時具有非常高的吞吐量,並且至少在某些時間工作,所以我不建議將它切換爲其他方式。首先收集已發送的電子郵件中的標題,並監控mailq的大小以確定發生瓶頸的位置 - 您的web服務器和收件人之間似乎有多個*跳躍。 – symcbean 2013-10-06 16:15:49

+0

我結束了使用PHP梅勒。需要非常小的配置! – Si8 2013-10-06 16:25:54