使用wp_mail发送的HTML电子邮件显示纯文本

时间:2014-05-13 作者:MichaelAngelo

我有一张要发送的HTML发票。

我使用以下函数替换HTML中的某些内容

 foreach($variables as $key => $value){
  $template = str_replace(\'{{ \'.$key.\' }}\', $value, $template);
}
之后,我发送邮件:

$to = get_option(\'admin_email\');
$subject = "Someone reserved from ".get_bloginfo(\'name\');
$headers = \'From: \'. $email . "\\r\\n" .    \'Reply-To: \' . $email . "\\r\\n";
$headers  .= \'MIME-Version: 1.0\' . "\\r\\n";
$headers .= \'Content-type: text/html\';
add_filter( \'wp_mail_content_type\', \'set_html_content_type\' );
function set_html_content_type() {
return \'text/html\';
}

wp_mail($to, $subject, strip_tags($template), $headers);
我收到的邮件如下:

Invoice article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; } audio, canvas, video { display: inline-block; } audio:not([controls]) { display: none; height: 0; } [hidden], template { display: none; } html { font-family: sans-serif; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } body { margin: 0; } a { background: transparent; } a:focus { outline: thin dotted; } a:active, a:hover { outline: 0; } h1 { margin: 0.67em 0; font-size: 2em ... 
(以及CSS的其余部分),然后是一些没有HTML标记的HTML文本。所以它可以识别HTML,因为它不显示<p> 和其他标记,但它不使用CSS。

1 个回复
SO网友:cybmeta

您正在通过strip_tags() 作用结果是将HTML标记条带化的电子邮件内容。尽量不要使用该功能。

结束

相关推荐

CSS3-媒体-JS儿童主题不及格

在我的父主题函数中。php,我有以下代码片段:// Add mediaqueries-js function footer_scripts(){ echo \'<!--[if lt IE 9]><script src=\"http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js\"></script><![endif]-->\'; }&#