繁体   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