2014-05-13 83 views
2

我正在處理電子郵件消息/票證系統。從舊郵件中分離電子郵件回覆文本

邏輯:

  1. 客戶開始在網站上的新票,存儲在數據庫
  2. 我收到關於新票的電子郵件在我的收件箱(通過網站產生的,與主題獨特ID線)
  3. 在回答電子郵件(回覆電子郵件地址如[email protected]
  4. PHPcron腳本讀取收件箱中,讓所有的郵件,將它們存儲到數據庫並生成電子郵件給客戶端。
  5. 客戶回覆郵件(回覆電子郵件地址 - [email protected]在主題行ID

問:

如何我可以讀哪裏是新的回覆文本,然後從email舊的? Email回覆示例:

Envelope-to: [email protected] 
From: [email protected] 
To: [email protected] 
Subject: Re: New Ticket: "Project #1" (ID: 15) 
Message-ID: <[email protected]> 

This is reply to message. 

On 2014-05-13 09:04, Client wrote: 
> This is text 
> 
> ---- 
> Best Regards, 
> Client 

我需要只有最新的回覆。客戶可以在任何mail客戶端的底部或頂部(任何地方說實話)寫回復,我打賭 - 很多mail客戶端有不同的格式。

有什麼建議嗎?

+0

找到類似的問題:http://stackoverflow.com/questions/5332382/php-filtering-email-body-removing-reply-quotes – Vaidas

回答

1

如果我需要解決這個問題,我會使用某種'差異'系統。我不知道PHP是否存在,但我相信它確實存在。

因此,然後更技術性,如果你有一種方式來區分郵件。我會把沒有標題的原始郵件(我們稱之爲郵件A)以及沒有標題的新郵件(郵件B)。然後就像比較郵件A和B一樣簡單,看看有什麼不同。添加的行是用戶的響應。

有些東西你必須去尋找自己,因爲我不會在這個時候知道他們一個答案:

  • 如果用戶不發送原始消息?例如,您只能使用從您的差異中添加的行,而不是那些被刪除的行。
  • 如果用戶在響應中更改內聯內容,該怎麼辦?我不知道如何解決這個問題。

我的解決方案實際上將是不給用戶那麼多的自由。準備一個用戶應該寫信息的地方。如下所示:「在以下行之間寫入消息<行> < line>」或「< line>在上一行的上方寫入消息」。然後你知道在哪裏尋找文本。

你給的自由越多,對你而言就越困難。你可以從一個簡單的系統開始,逐步提高系統的智能。這就是我大部分時間開始的方式:從簡單的事情開始,逐漸增加難度。

相關問題