Exemplo n.º 1
0
 /**
  * @param array $aAlternativeData
  *
  * @return \MailSo\Mime\Part
  */
 private function createNewMessageAlternativePartBody($aAlternativeData)
 {
     $oAlternativePart = null;
     if (is_array($aAlternativeData) && isset($aAlternativeData[0])) {
         $oAlternativePart = Part::NewInstance();
         $oParameters = ParameterCollection::NewInstance();
         $oParameters->Add(Parameter::NewInstance(\MailSo\Mime\Enumerations\Parameter::CHARSET, \MailSo\Base\Enumerations\Charset::UTF_8));
         if (isset($aAlternativeData[3]) && \is_array($aAlternativeData[3]) && 0 < \count($aAlternativeData[3])) {
             foreach ($aAlternativeData[3] as $sName => $sValue) {
                 $oParameters->Add(Parameter::NewInstance($sName, $sValue));
             }
         }
         $oAlternativePart->Headers->Add(Header::NewInstance(\MailSo\Mime\Enumerations\Header::CONTENT_TYPE, $aAlternativeData[0] . '; ' . $oParameters->ToString()));
         $oAlternativePart->Body = null;
         if (isset($aAlternativeData[1])) {
             if (is_resource($aAlternativeData[1])) {
                 $oAlternativePart->Body = $aAlternativeData[1];
             } else {
                 if (is_string($aAlternativeData[1]) && 0 < strlen($aAlternativeData[1])) {
                     $oAlternativePart->Body = \MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString($aAlternativeData[1]);
                 }
             }
         }
         if (isset($aAlternativeData[2]) && 0 < strlen($aAlternativeData[2])) {
             $oAlternativePart->Headers->Add(Header::NewInstance(\MailSo\Mime\Enumerations\Header::CONTENT_TRANSFER_ENCODING, $aAlternativeData[2]));
             if (is_resource($oAlternativePart->Body)) {
                 if (!\MailSo\Base\StreamWrappers\Binary::IsStreamRemembed($oAlternativePart->Body)) {
                     $oAlternativePart->Body = \MailSo\Base\StreamWrappers\Binary::CreateStream($oAlternativePart->Body, \MailSo\Base\StreamWrappers\Binary::GetInlineDecodeOrEncodeFunctionName($aAlternativeData[2], false));
                     \MailSo\Base\StreamWrappers\Binary::RememberStream($oAlternativePart->Body);
                 }
             }
         }
         if (!is_resource($oAlternativePart->Body)) {
             $oAlternativePart->Body = \MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString('');
         }
     }
     return $oAlternativePart;
 }