src/Mail/Message.php
public function setHtmlBody(string $html, string $basePath = null)
    {
        if ($basePath) {
            $cids = [];
            $matches = Strings::matchAll(
                $html,
                '#
					(<img[^<>]*\s src\s*=\s*
					|<body[^<>]*\s background\s*=\s*
					|<[^<>]+\s style\s*=\s* ["\'][^"\'>]+[:\s] url\(
					|<style[^>]*>[^<]+ [:\s] url\()
					(["\']?)(?![a-z]+:|[/\\#])([^"\'>)\s]+)
					|\[\[ ([\w()+./@~-]+) \]\]
				#ix',
                PREG_OFFSET_CAPTURE
            );
            foreach (\array_reverse($matches) as $m) {
                $file = \rtrim($basePath, '/\\') . '/' . (isset($m[4]) ? $m[4][0] : \urldecode($m[3][0]));
                if (!isset($cids[$file])) {
                    $cids[$file] = \substr($this->addEmbeddedFile($file)->getHeader('Content-ID'), 1, -1);
                }
                $html = \substr_replace($html,
                    "{$m[1][0]}{$m[2][0]}cid:{$cids[$file]}",
                    $m[0][1], \strlen($m[0][0])
                );
            }
        }

        if ($this->getSubject() == null) { // intentionally ==
            $html = Strings::replace($html, '#<title>(.+?)</title>#is', function (array $m): void {
                $this->setSubject(\html_entity_decode($m[1], ENT_QUOTES, 'UTF-8'));
            });
        }

        $this->htmlBody = \ltrim(\str_replace("\r", '', $html), "\n");

        if ($html !== '' && $this->getBody() === '') {
            $this->setBody($this->buildText($html));
        }

        return $this;
    }
public function setHtmlBody(string $html, string $basePath = null)
    {
        if ($basePath) {
            $cids = [];
            $matches = Strings::matchAll(
                $html,
                '#
					(<img[^<>]*\s src\s*=\s*
					|<body[^<>]*\s background\s*=\s*
					|<[^<>]+\s style\s*=\s* ["\'][^"\'>]+[:\s] url\(
					|<style[^>]*>[^<]+ [:\s] url\()
					(["\']?)(?![a-z]+:|[/\\#])([^"\'>)\s]+)
					|\[\[ ([\w()+./@~-]+) \]\]
				#ix',
                PREG_OFFSET_CAPTURE
            );
            foreach (\array_reverse($matches) as $m) {
                $file = \rtrim($basePath, '/\\') . '/' . (isset($m[4]) ? $m[4][0] : \urldecode($m[3][0]));
                if (!isset($cids[$file])) {
                    $cids[$file] = \substr($this->addEmbeddedFile($file)->getHeader('Content-ID'), 1, -1);
                }
                $html = \substr_replace($html,
                    "{$m[1][0]}{$m[2][0]}cid:{$cids[$file]}",
                    $m[0][1], \strlen($m[0][0])
                );
            }
        }

        if ($this->getSubject() == null) { // intentionally ==
            $html = Strings::replace($html, '#<title>(.+?)</title>#is', function (array $m): void {
                $this->setSubject(\html_entity_decode($m[1], ENT_QUOTES, 'UTF-8'));
            });
        }

        $this->htmlBody = \ltrim(\str_replace("\r", '', $html), "\n");

        if ($html !== '' && $this->getBody() === '') {
            $this->setBody($this->buildText($html));
        }

        return $this;
    }
public function setHtmlBody ( string $ html , string $ basePath = null ) { if ( $ basePath ) { $ cids = [ ] ; $ matches = Strings :: matchAll ( $ html , '#
					(<img[^<>]*\s src\s*=\s*
					|<body[^<>]*\s background\s*=\s*
					|<[^<>]+\s style\s*=\s* ["\'][^"\'>]+[:\s] url\(
					|<style[^>]*>[^<]+ [:\s] url\()
					(["\']?)(?![a-z]+:|[/\\#])([^"\'>)\s]+)
					|\[\[ ([\w()+./@~-]+) \]\]
				#ix' , PREG_OFFSET_CAPTURE ) ; foreach ( \ array_reverse ( $ matches ) as $ m ) { $ file = \ rtrim ( $ basePath , '/\\' ) . '/' . ( isset ( $ m [ 4 ] ) ? $ m [ 4 ] [ 0 ] : \ urldecode ( $ m [ 3 ] [ 0 ] ) ) ; if ( ! isset ( $ cids [ $ file ] ) ) { $ cids [ $ file ] = \ substr ( $ this -> addEmbeddedFile ( $ file ) -> getHeader ( 'Content-ID' ) , 1 , - 1 ) ; } $ html = \ substr_replace ( $ html , "{$m[1][0]}{$m[2][0]}cid:{$cids[$file]}" , $ m [ 0 ] [ 1 ] , \ strlen ( $ m [ 0 ] [ 0 ] ) ) ; } } if ( $ this -> getSubject ( ) == null ) { // intentionally == $ html = Strings :: replace ( $ html , '#<title>(.+?)</title>#is' , function ( array $ m ) : void { $ this -> setSubject ( \ html_entity_decode ( $ m [ 1 ] , ENT_QUOTES , 'UTF-8' ) ) ; } ) ; } $ this -> htmlBody = \ ltrim ( \ str_replace ( "\r" , '' , $ html ) , "\n" ) ; if ( $ html !== '' && $ this -> getBody ( ) === '' ) { $ this -> setBody ( $ this -> buildText ( $ html ) ) ; } return $ this ; }
Sets HTML body.

@param string      $html
@param string|null $basePath

@return $this

@throws RegexpException
Sets HTML body .