Да, вы можете создать MIME-компонент сообщения, используя что-то вроде imap_mail_compose .
Вам нужно будет создать составное сообщение, как в первом примере, поместив XML из параметра $request
из переопределенного метода SoapClient::__doRequest
в первую часть сообщения MIME.
Затем вы можете сделать, как другие показали в первом примере imap_mail_compose
, чтобы добавить одну или несколько частей сообщений с вложениями. Эти вложения могут, но не обязательно должны быть закодированы в base64, они также могут быть двоичными. Кодировка для каждой части указывается в заголовках для конкретной детали.
Вам также потребуется подготовить соответствующий набор заголовков HTTP в соответствии с Документом SwA @Baba, на который ссылались ранее.
Как только все будет сказано и сделано, у вас должно получиться что-то похожее на примеры из этого документа:
MIME-Version: 1.0
Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;
start="<claim061400a.xml@claiming-it.com>"
Content-Description: This is the optional message description.
--MIME_boundary
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-ID: <claim061400a.xml@claiming-it.com>
<?xml version='1.0' ?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
..
<theSignedForm href="cid:claim061400a.tiff@claiming-it.com"/>
..
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
--MIME_boundary
Content-Type: image/tiff
Content-Transfer-Encoding: binary
Content-ID: <claim061400a.tiff@claiming-it.com>
...binary TIFF image...
--MIME_boundary--
И вы можете отправить это по проводам с помощью вышеупомянутого переопределенного метода SoapClient::__doRequest
. До сих пор я заметил, что сам пытался реализовать это:
- Возможно, вам потребуется создать href URI-ссылку от каждого узла SOAP к соответствующему вложению, что-то вроде
href="cid:claim061400a.tiff@claiming-it.com"
выше
- Вам потребуется извлечь компонент border из содержимого MIME, возвращенного
imap_mail_compose
для использования в HTTP Content-Type header
- Не забудьте также о компоненте start заголовка Content-Type , он должен выглядеть примерно так:
imap_mail_compose
выглядит довольно минимально (но низко висящий фрукт), если этого окажется недостаточно, рассмотрите Mail_Mime вместо
Content-Type: Multipart / Related; граница = MIME_boundary;
тип = текст / XML; начать = ""
Наконец, я не уверен, насколько равномерно различные реализации SwA есть в Интернете ... Достаточно сказать, что я не смог загрузить на удаленный компьютер сервис с грубой реализацией того, что я описал выше. Похоже, что SwA является типичной парадигмой вложения SOAP, хотя, судя по тому, что я собираю, читая в сети.