好的,根据@birgire的建议,我最终使用wp_mail_content_type
与我的表单上的隐藏字段一起过滤。Php代码如下:
add_filter( \'wp_mail_content_type\', \'set_mailer_content_type\' );
function set_mailer_content_type( $content_type ) {
if(isset($_POST[\'ishtmlform\'])){ return \'text/html\'; } // in-page/form hidden field
return \'text/plain\';
}
这使我可以在每个页面上有多个表单,并具有不同的内容类型设置(例如,一个发送文本/纯文本,另一个发送文本/html,就在同一html页面中)。
旁注,有点离题:
内部,wp_mail()
刚刚设置PhpMailer->isHTML(true)
如果设置内容类型==\'text/html\'
. 您可以在中找到源wp-includes/pluggable.php
记住,如果\'text/html\'
, 您必须发送真正的html代码,我的意思是,邮件正文必须至少包含html、标题、标题和正文标记,而不仅仅是一些带有br或链接的纯文本,否则它可能会被标记为“非纯文本”,您的邮件会被识别为垃圾邮件