Mail\Message setHtmlBody vložení obrázků inline

lubos
Člen | 22
+
0
-

Ahoj,
jak je vymyšleno vkládání obrázků při sestavování html emailů z šablon, nějak nerozumím, proč se nevloží inline obrázky které mají uvedenu cestu, vkládají se pouze ty které ji nemají. Zkouším udělat jednoduchý mailovací systém, kde jsou předpřipravené šablony a do nich se potom vloží obsah vytvořený v nějakém tom editoru pro „blbé“. U toho jsem zjistil že při použití $mail->setHtmlBody() s druhým parametrem cesty, se vloží pouze obrázky, které cestu uvedenou nemají.

Viníkem je regulární výraz v Nette\Mail v metodě setHtmlBody, ale proč ?

$html = '<img src="image.jpg">';
$html .= '<img src="/image.jpg">';
$html .= '<img src="http://moon.lan/image.jpg">';
$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
);
Debugger::barDump($matches);