src/Mime/MimeDocument.php
public static function fromString($documentString)
    {
        $document = new MimeDocument($documentString);

        $lines = explode("\n", $documentString);

        $boundary = false;

        $nextPartLines = [];

        $firstBoundaryFound = false;
        $mimeMessage = "";

        foreach ($lines as $line) {
            $line = trim($line);

            if (!$boundary) {
                if (preg_match("/Content-Type: (multipart\/.+);\s+boundary=\"?([^\"]+)\"?/i", $line, $match)) {
                    $document->boundary = $match[2];
                    $document->setContentType($match[1]);
                    $boundary = $match[2];
                    continue;
                }
            } else {
                if ($line == "--" . $boundary . "--") {
                    $part = MimePart::fromLines($nextPartLines);
                    $document->addPart($part);
                    break;
                }

                if ($line == "--" . $boundary) {
                    if (!$firstBoundaryFound) {
                        $firstBoundaryFound = true;
                    } else {
                        $part = MimePart::fromLines($nextPartLines);
                        $document->addPart($part);
                        $nextPartLines = [];
                    }
                } else {
                    if ($firstBoundaryFound) {
                        $nextPartLines[] = $line;
                    } else {
                        $mimeMessage .= $line . "\r\n";
                    }
                }
            }
        }

        $document->setMessage(trim($mimeMessage));

        return $document;
    }
public static function fromString($documentString)
    {
        $document = new MimeDocument($documentString);

        $lines = explode("\n", $documentString);

        $boundary = false;

        $nextPartLines = [];

        $firstBoundaryFound = false;
        $mimeMessage = "";

        foreach ($lines as $line) {
            $line = trim($line);

            if (!$boundary) {
                if (preg_match("/Content-Type: (multipart\/.+);\s+boundary=\"?([^\"]+)\"?/i", $line, $match)) {
                    $document->boundary = $match[2];
                    $document->setContentType($match[1]);
                    $boundary = $match[2];
                    continue;
                }
            } else {
                if ($line == "--" . $boundary . "--") {
                    $part = MimePart::fromLines($nextPartLines);
                    $document->addPart($part);
                    break;
                }

                if ($line == "--" . $boundary) {
                    if (!$firstBoundaryFound) {
                        $firstBoundaryFound = true;
                    } else {
                        $part = MimePart::fromLines($nextPartLines);
                        $document->addPart($part);
                        $nextPartLines = [];
                    }
                } else {
                    if ($firstBoundaryFound) {
                        $nextPartLines[] = $line;
                    } else {
                        $mimeMessage .= $line . "\r\n";
                    }
                }
            }
        }

        $document->setMessage(trim($mimeMessage));

        return $document;
    }
public static function fromString ( $ documentString ) { $ document = new MimeDocument ( $ documentString ) ; $ lines = explode ( "\n" , $ documentString ) ; $ boundary = false ; $ nextPartLines = [ ] ; $ firstBoundaryFound = false ; $ mimeMessage = "" ; foreach ( $ lines as $ line ) { $ line = trim ( $ line ) ; if ( ! $ boundary ) { if ( preg_match ( "/Content-Type: (multipart\/.+);\s+boundary=\"?([^\"]+)\"?/i" , $ line , $ match ) ) { $ document -> boundary = $ match [ 2 ] ; $ document -> setContentType ( $ match [ 1 ] ) ; $ boundary = $ match [ 2 ] ; continue ; } } else { if ( $ line == "--" . $ boundary . "--" ) { $ part = MimePart :: fromLines ( $ nextPartLines ) ; $ document -> addPart ( $ part ) ; break ; } if ( $ line == "--" . $ boundary ) { if ( ! $ firstBoundaryFound ) { $ firstBoundaryFound = true ; } else { $ part = MimePart :: fromLines ( $ nextPartLines ) ; $ document -> addPart ( $ part ) ; $ nextPartLines = [ ] ; } } else { if ( $ firstBoundaryFound ) { $ nextPartLines [ ] = $ line ; } else { $ mimeMessage .= $ line . "\r\n" ; } } } } $ document -> setMessage ( trim ( $ mimeMessage ) ) ; return $ document ; }
Creates a document from a MIME string.

Note this currently only supports a single level of MIME - no nesting.

@param $documentString
@return MimeDocument
Creates a document from a MIME string .