Fix #1787 convert image URLs to absolute path when sending mail

This commit is contained in:
Kijin Sung 2021-09-11 00:13:20 +09:00
parent d49614d59c
commit 602d7aec79
2 changed files with 20 additions and 1 deletions

View file

@ -635,7 +635,17 @@ class Mail
*/
protected function convertImageURLs(array $matches)
{
return preg_replace('/src=(["\']?)files/i', 'src=$1' . URL::getCurrentDomainURL(\RX_BASEURL) . 'files', $matches[0]);
$patterns = [
'!\b(?i:src)=(["\']?)(?:\./|' . preg_quote(\RX_BASEURL, '!') . '|)files/!',
'!\b(?:data-file-srl|editor_component|widget|id)="[^"]*"\s?!',
'!\b(?:class="zbxe_widget_output")\s?!',
];
$replacements = [
'src=$1' . URL::getCurrentDomainURL(\RX_BASEURL) . 'files/',
'',
'',
];
return preg_replace($patterns, $replacements, $matches[0]);
}
/**