簡體   English   中英

使用PHP解析確認電子郵件?

[英]Use PHP to parse a confirmation email?

我正在將我的網站與第三方系統集成。 這是我的網站和第三方系統之間的工作流程:

1)在我的網站上,我使用PHP自動將CSV文件上傳到第三方系統。

2)第三方系統收到我的文件后,它將進行一些操作。

3)第三方系統將通過電子郵件john@mydomain.com列出成功和失敗操作的列表,包括任何錯誤消息。

4)我的網站需要在確認電子郵件中記錄成功/失敗操作的列表。

5)我的網站根據確認電子郵件中哪些項目成功/失敗執行操作。

第一個問題:我需要研究什么才能實現#4?

第二個問題:解析確認電子郵件是記錄第三方系統成功/失敗操作的最佳方法嗎? 進入第5步似乎是一種有問題的方式(例如,如果電子郵件中的語言更改了怎么辦?那么我必須重寫解析器”。)

好吧,顯然,更好的方法是按照定義的參數約定從第三方系統推送到您端的腳本。 如果有機會這樣做,請與第三方聯系,以某種方式無法實施這種方法。 他們的工作可能很少。

解析電子郵件:PHP中檢查POP3和IMAP郵箱的標准方法在這里

解析電子郵件本身所需的內容取決於它們的外觀。 可能會涉及到正則表達式。

我已經完成了與此類似的設置。 設置郵箱以接收來自另一個系統的輸出肯定不是最可靠的設置,但是有時沒有其他選擇。

Zend_Mail使這變得輕而易舉。 我檢查郵件收件箱的整個腳本只有幾行:

    $mail = new Zend_Mail_Storage_Imap(array(
        'host' => $config->reports->email->incoming,
        'user' => $config->reports->email->address,
        'password' => $config->reports->email->password
    ));

    foreach ($mail as $message) {
        $message->getContent(); // Do something with the message content
        if ($message->isMultipart()) {
            $part = $message->getPart(2); // Deal with attachment, 
                                          // if your output is an  
                                          // attachment
            if ($part->contentTransferEncoding=='base64') {
                $raw = base64_decode($part->getContent());
                // Do something with the attachment data
            }
        }
    }

由於您正在解析HTML,因此將其傳遞給DOM解析器將是下一步的邏輯步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM