Mail – Vylepšení automatického vkládání obrázků

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
norbe
Backer | 405
+
0
-

Ahoj,

automatické vkládání obrázků do emailu je sice super, ale bohužel nefunguje pro cesty zadané ve tvaru /images/obrazek.jpg. Takovýto obrázek je pak po doručení emailu nemožné zobrazit.

Řešení spočívá ve zjednodušení regexpu zde

-			$matches = String::matchAll($this->html, '#(src\s*=\s*|background\s*=\s*|url\()(["\'])(?![a-z]+:|[/\\#])(.+?)\\2#i', PREG_OFFSET_CAPTURE);
+			$matches = String::matchAll($this->html, '#(src\s*=\s*|background\s*=\s*|url\()(["\'])(?![a-z]+:|[\\#])(.+?)\\2#i', PREG_OFFSET_CAPTURE);

Rozdíl je pouze v umazaném / a nenapadá mne situace, kde by to mohlo dělat problémy…

David Grudl
Nette Core | 8218
+
0
-

Používej relativní cesty.

norbe
Backer | 405
+
0
-

No to mně taky napadlo, ale pak je zase problém s editací těch mailů ve wysiwyg editorech. Když se nad tím zamyslíš, k čemu může být v emailu dobrá absolutní cesta?

David Grudl
Nette Core | 8218
+
0
-

Obrázky se dohledávají relativně vůči souboru se šablonou, proto se akceptují jen relativní cesty. Absolutní cesta v emailu nemá žádný význam, ale takový obrázek je nedohledatelný.