laravel-imap,仅获取正文文本内容的问题

时间:2021-07-10 04:13:22

标签: php laravel imap

我正在使用来自 webklex(1.6 版)的 Laravel-IMAP,但我遇到了一个问题,即在没有 HTML 或 CSS 标签的纯文本中获取一致的电子邮件正文。从我的个人地址到此测试地址的简单电子邮件似乎不是问题,因为它主要显示带有   的正文文本和签名文本。

但是,对于带有大量 HTML/CSS/JS 正文格式的更像垃圾邮件的电子邮件,这仍然让整个 CSS 部分通过。

我的代码:

public function format_html_body($str) {
    $str = htmlentities($str, ENT_COMPAT, "UTF-8");
    $str = str_replace(chr(10), "<br>", $str);
    return $str;
}

//within another function
$body = $oMessage->getHTMLBody();
$stripped_body = strip_tags($body);
$formatted_body = preg_replace('/\s+|body {.*}/', ' ', $stripped_body);
$final_Content = self::format_html_body($formatted_body);
echo $final_Content;

我在回显 $final_content 时看到的示例:

email td { padding: 0px; } p { margin: 0px; } @media only screen and (max-width:768px) { .container { width:90% !important; min-width:90% !important; } .mobile-cell { display:block; width:100%; } .theme-digest { padding:0 20px !important; } .theme-pyd { height: 100%; width: 600px !important; } .sm-hidden { display:none !important; } .sm-shown { display:block !important; } .footer .left-side, .footer .right-side { width:100% !important; display:block !important; padding:10px !important; text-align:center !important; } } /* remember to define focus styles! */ .bodyDirection_ltr { direction:ltr; } .bodyDirection_rtl { direction:rtl; } .ltr { text-align:left; }

0 个答案:

没有答案