// | obtain it through the world-wide-web, please send a note to | // | license@php.net so we can mail you a copy immediately. | // +----------------------------------------------------------------------+ // | Authors: Shane Caraveo <*****@*****.**> Port to PEAR and more | // +----------------------------------------------------------------------+ // // $Id: email_gateway.php,v 1.1 2006/11/16 13:02:13 tarvo Exp $ // /* This reads a message from stdin, and passes the request to a soap server residing on a web server, sends the response out as an email You can use this from qmail by creating a .qmail-soapgateway file with: | /usr/bin/php /path/to/email_server.php */ # include the email server class require_once 'SOAP/Server/Email_Gateway.php'; # read stdin $fin = fopen('php://stdin', 'rb'); if (!$fin) { exit(0); } $email = ''; while (!feof($fin) && ($data = fread($fin, 8096))) { $email .= $data; } fclose($fin); # doit! $server = new SOAP_Server_Email_Gateway(); $server->service($data, 'http://localhost/soap/example/server.php');
// | If you did not receive a copy of the PHP license and are unable to | // | obtain it through the world-wide-web, please send a note to | // | license@php.net so we can mail you a copy immediately. | // +----------------------------------------------------------------------+ // | Authors: Shane Caraveo <*****@*****.**> Port to PEAR and more | // +----------------------------------------------------------------------+ // // $Id$ // /* include the Email server class, which knows how to parse a standard email as a soap message */ require_once 'SOAP/Server/Email_Gateway.php'; /* include a class to access POP3 */ require_once 'Net/POP3.php'; /* create the SOAP Server object */ $server = new SOAP_Server_Email_Gateway('http://localhost/soap_interop/server_round2.php'); /* tell server to translate to classes we provide if possible */ $server->_auto_translation = true; require_once 'example_server.php'; $soapclass = new SOAP_Example_Server(); $server->addObjectMap($soapclass, 'urn:SOAP_Example_Server'); /* Connect to a POP3 server and read the messages */ $pop3 =& new Net_POP3(); if ($pop3->connect('localhost', 110)) { if ($pop3->login('username', 'password')) { $listing = $pop3->getListing(); /* now loop through each message, and call the SOAP server with that message */ foreach ($listing as $msg) { $email = $pop3->getMsg($msg['msg_id']); /* this is where we actually handle the SOAP