PEAR::SOAP includes classes and examples to handle SOAP Messages embedded in Email. These classes are used in relatively the same manor as a regular HTTP based SOAP Server, except that they need to be executed by a task scheduler or directly by the SMTP server itself.

This server reads data from STDIN and services the SOAP Message it receives. If you use QMail, you can create a .qmail-soapaddress file with '| /usr/bin/php /path/to/email_server.php' to service SOAP over SMTP requests.

SOAP Server that handles Email

<?php
require_once 'SOAP/Server/Email.php';

$server = new SOAP_Server_Email;

class 
SOAP_Example_Server {
    function 
echoString($inputString)
    {
        return 
$inputString;
    }
}

# read stdin
$fin fopen('php://stdin','rb');
if (!
$fin) exit(0);

$email '';
while (!
feof($fin) && $data fread($fin8096)) {
  
$email .= $data;
}

fclose($fin);

$soapclass = new SOAP_Example_Server();
$server->addObjectMap($soapclass,'urn:SOAP_Example_Server');
$server->service($email);
?>