我正在将我的网站与第三方系统集成。这是我的网站和第三方系统之间的工作流程:
1)在我的网站上,我使用PHP自动将CSV文件上传到第三方系统。
2)在第三方系统收到我的文件后,它会进行一些操作。
3)第三方系统将通过电子邮件向john@mydomain.com发送包含任何错误消息的成功和失败操作列表。
4)我的网站需要在确认电子邮件中记录成功/失败的操作列表。
5)我的网站根据确认电子邮件中的项目成功/失败执行操作。
第一个问题: 我需要研究什么才能实现#4?
第二个问题: 解析确认电子邮件是记录第三方系统成功/失败操作的最佳方法吗?感觉这是进入第5步的有问题的方法(例如,如果电子邮件中的语言发生变化会怎样?那么我必须重写解析器“。
答案 0 :(得分:2)
嗯,显然更好的方法是按照定义的参数约定,从第三方系统推送到您最终的脚本。 如果有机会这样做,请与第三方联系,不知道这种方式是否无法实现。他们的工作可能很少。
解析电子邮件: PHP中用于检查POP3和IMAP邮箱的标准方法是here
解析电子邮件本身需要什么取决于它们的外观。可能会涉及正则表达式。
答案 1 :(得分:1)
我对此做了类似的设置。设置邮箱以接收来自另一个系统的输出肯定不是最防错的设置,但有时没有其他选项。
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解析器将是下一个合乎逻辑的步骤。