问题描述
有没有一个类似的可以帮助我实现这一点的 action_hook?
我尝试在 PHP 字符串变量中添加标记,并刚刚使用 wp_mail 函数发出电子邮件,如下所示:
$email_to = 'someaddress@gmail.com';
$email_subject = 'Email subject';
$email_body = "<html><body><h1>Hello World!</h1></body></html>";
$send_mail = wp_mail($email_to, $email_subject, $email_body);
但它显示为明文吗?
有任何想法吗?
最佳解决方案
The default content type is ‘text/plain’ which does not allow using HTML. However, you can set the content type of the email by using the ‘wp_mail_content_type’ filter.
function wpse27856_set_content_type(){
return "text/html";
}
add_filter( 'wp_mail_content_type','wpse27856_set_content_type' );
次佳解决方案
或者,您可以在 $ headers 参数中指定 Content-Type HTTP 头:
$to = 'sendto@example.com';
$subject = 'The subject';
$body = 'The email body content';
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail( $to, $subject, $body, $headers );
第三种解决方案
使用 wp_mail 功能后,请勿忘记删除内容类型过滤器。遵循接受的答案命名,您应该在执行 wp_mail 后执行此操作:
remove_filter( 'wp_mail_content_type','wpse27856_set_content_type' );
在这里检查这张票 – 重置 content-type 以避免冲突 – http://core.trac.wordpress.org/ticket/23578
参考文献
注:本文内容整合自 google/baidu/bing 翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:gxnotes#qq.com(#替换为 @) 。