Commit a324b26c by armab

BaseMailer: strip <style> content from TextBody fix

If ```$htmlLayout``` contains <style> tags with CSS rules, strip_tags here: https://github.com/yiisoft/yii2/blob/master/framework/mail/BaseMailer.php#L189 won't clean those CSS rules. Actual html: ```html <html> <head> <style> .text-secondary {color: #93959A;} [...] [Other CSS rules] [...] </style> </head> <body> <div>Some content</div> </body> </html> ``` Will look this way in TEXT version of Email: ``` .text-secondary {color: #93959A;} [...] [Other CSS rules] [...] Some content ``` -------------- If TEXT version of Email differs drastically from visible content of HTML version, it can be result that some penalty points will apply to such mails: http://wiki.apache.org/spamassassin/Rules/MPART_ALT_DIFF_COUNT Since it's default behaviour for both yii2-app-advanced and yii2-app-basic (where stripped from tags html used for TextBody), I believe people will stumble in this for sure, without even knowing that their emails can be penalized. You can reproduce it by placing CSS styles in email view or layout and test it here: http://www.mail-tester.com/ (SpamAssassin section).
parent d43f1c1b
......@@ -186,6 +186,7 @@ abstract class BaseMailer extends Component implements MailerInterface, ViewCont
if (isset($text)) {
$message->setTextBody($text);
} elseif (isset($html)) {
$html = preg_replace('|<style[^>]*>(.*)</style>|is', '', $html);
$message->setTextBody(strip_tags($html));
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment