Email PHPmailer内容类型:多部分/可选

Email PHPmailer内容类型:多部分/可选,email,phpmailer,Email,Phpmailer,我在WordPress中使用wp_mail()和PHPMailer发送多部分电子邮件时遇到问题 此邮件头: $wp_mail_headers = array( "From: Test <test@test.com>", 'Content-Type: multipart/alternative; boundary="b_00cdedc7a5309e22d6d51e1ad7ad886e"', ); 应该是这样的: MIME-Version

我在WordPress中使用wp_mail()和PHPMailer发送多部分电子邮件时遇到问题

此邮件头:

    $wp_mail_headers = array(
        "From: Test <test@test.com>",
        'Content-Type: multipart/alternative;
boundary="b_00cdedc7a5309e22d6d51e1ad7ad886e"',
    );
应该是这样的:

MIME-Version: 1.0    
Content-Type: multipart/alternative; boundary="b_00cdedc7a5309e22d6d51e1ad7ad886e"
如何使用PHPMailer设置多部分电子邮件标题

谢谢

更新:

添加过滤器怎么样?这样行吗?例如:

add_filter( 'wp_mail', 'rw_change_email_headers' );
function rw_change_email_headers( $params )
{
    $params['headers'] = 'Content-type: text/html';
    return $params;
}
如果过滤器与PHPMailer一起工作,如何将其添加到下面的代码中? 之后是否应使用remove_filter()拆下过滤器

$wp\u邮件头=数组(
“来自:测试”,
“密件抄送:test@test.com",
“回复:$wp_admin_email”,
“内容类型:多部分/备选;边界=“b_00cdedc7a5309e22d6d51e1ad7ad886e”,
);
$wp_mail_message='--b_00cdedc7a5309e22d6d51e1ad7ad886e
内容类型:文本/纯文本;charset=“UTF-8”
内容传输编码:引用可打印';
$wp_mail_message.=get_字段('order_email_plain_text','option');
$wp_mail_message.='--b_00cdedc7a5309e22d6d51e1ad7ad886e
内容类型:text/html;charset=“UTF-8”
内容传输编码:引用可打印
订购电邮";;
$wp_mail_message.=get_字段('order_email','option');
$wp_mail_message.='
--b_00cdedc7a5309e22d6d51e1ad7ad886e——”;

PHPMailer根据您提供的内容为您处理MIME结构。这将产生一个
multipart/alternative
MIME结构(不仅仅是一个头):

看起来角色集也没有正确设置。您可以通过以下方式解决此问题:

$mail->CharSet = 'utf-8';

您使用的是旧版本的PHPMailer,因此我建议您升级。

Aha谢谢!那么如何在WordPress中升级PHPMailer呢?看起来我是在外部使用它。我认为Wordpress可能会被困在一个旧版本上,因为他们沉迷于与过时已久的PHP 5.3的向后兼容性,但你确实可以自己从外部加载它-请参阅PHPMailer自述,了解你在版本6.0中需要哪些文件。我不确定Wordpress是如何加载自己的版本的。好吧,看来我必须采取一种全新的方法来构建电子邮件。我想在我想添加纯文本替代品之前它就已经工作了。也许更容易弄清楚如何使用WP的PHPMailer实例-所有这些设置都应该可以通过某种方式访问。
$wp_mail_headers = array(
    "From: Test <$wp_admin_email>",
    "Bcc: test@test.com",
    "Reply-To: $wp_admin_email",
    'Content-Type: multipart/alternative; boundary="b_00cdedc7a5309e22d6d51e1ad7ad886e"',
);

$wp_mail_message = '--b_00cdedc7a5309e22d6d51e1ad7ad886e
  Content-Type: text/plain; charset="UTF-8"
  Content-Transfer-Encoding: quoted-printable';

$wp_mail_message .= get_field('order_email_plain_text', 'option');

$wp_mail_message .= '--b_00cdedc7a5309e22d6d51e1ad7ad886e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<!doctype html><html lang="en"><head><meta name="viewport" content="width=device-width" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Order Email</title></head><body>';
$wp_mail_message .= get_field('order_email', 'option');
$wp_mail_message .= '</body></html>
--b_00cdedc7a5309e22d6d51e1ad7ad886e--';
$mail->isHTML();
$mail->Body = '<h1>Hello</h1>';
$mail->AltBody = 'Hello';
$mail->setFrom('test@test.com', 'Test');
$mail->CharSet = 'utf-8';