2009-12-21 7 views
1

J'intègre mon site Web avec un système tiers. Voici le flux de travail entre mon site Web et le système tiers:Utilisez PHP pour analyser un email de confirmation?

1) Depuis mon site Web, j'utilise PHP pour automatiser le téléchargement d'un fichier CSV vers le système tiers.

2) Une fois que le système tiers a reçu mon fichier, il effectue quelques opérations.

3) Le système tiers enverra à [email protected] une liste des opérations réussies et échouées, y compris les messages d'erreur.

4) Mon site Web doit enregistrer la liste des opérations réussies/échouées dans l'e-mail de confirmation.

5) Mon site Web effectue des opérations en fonction des éléments ayant réussi/échoué dans l'e-mail de confirmation.

Première question: De quoi ai-je besoin pour faire des recherches afin de pouvoir implémenter le # 4?

Deuxième question: L'analyse d'un e-mail de confirmation est-elle le meilleur moyen d'enregistrer les opérations réussies/échouées du système tiers? Cela ressemble à une manière problématique d'arriver à l'étape 5 (par exemple, si la langue dans l'email change? Alors je dois réécrire l'analyseur.)

Répondre

2

Eh bien, évidemment, une meilleure façon serait une sorte de poussée de le système de tierce partie à un script de votre côté, suivant une convention de paramètres définie S'il y a une chance de le faire, parlez à la 3ème partie si un tel moyen ne peut pas être implémenté d'une manière ou d'une autre. . sur leur extrémité

pour Parse E-mail: la méthode standard en PHP pour vérifier les boîtes aux lettres POP3 et IMAP est here

Ce que vous devez analyser la E-Mails eux-mêmes dépend de ce à quoi ils ressemblent. Probablement des expressions régulières seront impliquées.

+1

Comme Pekka mentionné re. un "script sur votre fin", et pour la recherche de fond sur les bases de la construction de votre propre API voir http://www.codewalkers.com/c/a/Miscellaneous/Create-Your-Own-Custom-API/ (via http : //stackoverflow.com/questions/1906255/create-api-using-php) – micahwittman

1

J'ai fait une configuration similaire à celle-ci. La configuration d'une boîte aux lettres pour recevoir la sortie d'un autre système n'est certainement pas la configuration la plus infaillible, mais parfois il n'y a pas d'autres options.

Zend_Mail rend cela un jeu d'enfant. Mon script entier pour vérifier la boîte de réception de courrier était juste quelques lignes:

$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 
      } 
     } 
    } 

Puisque vous l'analyse syntaxique HTML, en passant cette option pour un analyseur DOM serait la prochaine étape logique.

+0

merci c'est un extrait de code utile! – John