2012-01-06 56 views
7

我正在構建一個基本的支持請求系統,客戶可以登錄並詢問問題,管理員可以進入並回復,並將狀態設置爲「已回覆」並通過電子郵件發送給客戶,讓他們知道某人有迴應。PHP/MySQL Ticket Response - 將電子郵件repsonse存儲在數據庫中?

我的問題是..我有一個「評論」部分,它是管理員和客戶之間交互的日誌。如果我通過電子郵件向管理員發送初始回覆郵件,那麼我有一種感覺,他們只會從他們的電子郵件中點擊「回覆」並開始在那裏進行交流,並且日誌不會被存儲。

我可以通過電子郵件發送給客戶並說「登錄以查看回復」,或者如果客戶確實回覆了我可以以某種方式跟蹤它並將其插入到評論表中,就像他們在網站上所做的一樣。如果這甚至是可能的?

只是想知道是否有一個標準的方式來做到這一點,你可能有任何建議。

謝謝!

+1

不要使用「真實」的電子郵件地址。使用虛擬路由器將郵件路由到您的票務系統,以便它們可以被記錄。 – 2012-01-06 14:18:27

回答

7

向用戶發送電子郵件時,您可以從爲該特定憑單創建的電子郵件地址發送電子郵件。一些可以識別您的電子郵件系統以幫助您將其路由回到php票務系統的東西。

支持(ticketnumber)@domain

[email protected]

那就要看你的電子郵件服務器如何從那裏上。 在這個問題上有幾個有用的提示,可以幫助或啓動您的入門。

How to get email and their attachments from PHP

1

如果你希望自己的回答被自動插入到數據庫,你將有一個分配cron作業在你的服務器上運行PHP腳本檢測來自客戶是否有一個應答(你需要一張列出客戶電子郵件和姓名的表格

每次客戶使用門票系統時,他們的電子郵件和姓名都會顯示在此表格中)。

您還需要通過imap或SMTP連接到您的收件箱,並且有腳本可以執行此操作(phpmailer,swiftmailer等)並「遍歷」每封電子郵件並查看發件人電子郵件是否與您的客戶表。然後在註釋表中插入一個INSERT。

另一種方法是在每次加載評論頁面時閱讀電子郵件,但這會導致頁面加載時間更長。但是,與cron作業相比,數據總是更「實時」。

+0

感謝您的回覆。我使用PHPMailer並通過SMTP連接發送電子郵件,但是我無法在網絡上找到有關如何通過SMTP連接來閱讀電子郵件並檢查進入內容的任何信息?我將客戶電子郵件存儲在用戶表中 - 所以我只需要幫助檢測是否有用戶使用PHPmailer的回覆。 – Drew 2012-01-10 20:32:23

1

您可以使用電子郵件管道(如果您的服務器支持它)。

在主題中,您將擁有一個唯一標識符,其中包含故障單ID或某個唯一的故障單。例如:「我如何吃食物[問題:#1234]」,其中1234是票證ID。

在您的控制面板中,您將設置一個電子郵件轉發器到您的電子郵件管道腳本。

本教程提供了基礎,以電子郵件的管道,我用它作爲基地爲我管腳本:http://www.damnsemicolon.com/php/parse-emails-in-php-with-email-piping-part-1

相關問題