public function updateNewsletterEmail(NewsletterEmail $email) { $newsletter = $email->Newsletter(); if ($newsletter->ContentSource != 'page' || !$newsletter->SourcePageID) { return; } $page = $newsletter->SourcePage(); $response = Director::test($page->RelativeLink()); $body = $this->emogrify($response->getBody()); $body = str_replace('xmlns="http://www.w3.org/1999/xhtml"', '', HTTP::absoluteURLs($body)); $re = '/\\.src\\s*=' . str_replace('/', '\\/', Director::absoluteBaseURL()) . '/'; $body = preg_replace($re, '.src =', $body); // undo the fudging that happens to keywords $body = preg_replace('/"[^"]*%7B%24(\\w+)%7D/', '"{\\$$1}', $body); $email->setBody(DBField::create('HTMLText', $body)); }