// | 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