Bir onay e-posta ayrıştırmak için PHP kullanmak?

2 Cevap php

Bir üçüncü parti sistemi ile web siteme entegre ediyorum. İşte benim web sitesi ve üçüncü parti sistemi arasındaki iş akışı bulunuyor:

1) web siteme, ben üçüncü parti sistemi için bir CSV dosyası yükleme otomatikleştirmek için PHP kullanabilirsiniz.

Üçüncü parti sistemi dosyamı aldıktan sonra 2), birkaç operasyonlarını yürütecek.

3) üçüncü parti sistem herhangi bir hata iletileri dahil olmak üzere başarılı ve başarısız operasyonlar bir listesini john@mydomain.com e-posta göndereceğiz.

4) Benim et onay e başarılı / başarısız operasyonlar listesini kaydetmek gerekiyor.

5) Web sitem ürün onay e başarısız / başarılı oldukları dayalı işlemleri gerçekleştirir.

First question: What do I need to research to be able to implement #4?

Second question: Is parsing a confirmation email the best way to record the successful/failed operations of the 3rd party system? It feels like a problematic way of getting to step 5 (for example, what if the language in the email changes? Then i have to rewrite the parser".

2 Cevap

Well, obviously a better way would be some sort of push from the 3rd party system to a script on your end, following a defined convention of parameters. If there is any chance to do so, talk to the 3rd party whether such a way can't be implemented somehow. It could be very little work on their end.

To parse E-Mail: The standard method in PHP to check POP3 and IMAP mailboxes is here

Eğer kendileri gibi bakmak ne bağlıdır E-mail ayrıştırmak için neler gerekir. Muhtemelen düzenli ifadeler dahil olacak.

Ben buna benzer bir kurulum yaptık. Başka bir sistemden çıktı almak için bir posta kutusu ayarlama en prova ayarı başarısız kesinlikle değildir, ama bazen başka seçenekler vardır.

Zend_Mail Bu bir esinti yapar. : Posta kutunuzu kontrol için benim bütün komut sadece birkaç satır oldu

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

Eğer bir DOM çözümleyici bu kapalı geçen, HTML ayrıştırma konum beri sonraki mantıklı adım olacaktır.