gpt4 book ai didi

php - Pear Mail,如何以UTF-8发送纯文本/文本+文本/html

转载 作者:行者123 更新时间:2023-12-03 00:32:52 27 4
gpt4 key购买 nike

我正在尝试以文本和 HTML 格式发送电子邮件,但无法正确发送正确的 header 。特别是,我想设置 Content-Type header ,但我找不到如何为 html 和文本部分单独设置它。

这是我的代码:

$headers = array(
'From' => 'info@mydomain.com',
'Return-Path' => 'info@mydomain.com',
'Subject' => 'mysubject',
'text_encoding' => '7bit',
'text_charset' => 'UTF-8',
'html_charset' => 'UTF-8',
'head_charset' => 'UTF-8',
'Content-Type' => 'text/html; charset=UTF-8'
);

$mime = new Mail_mime();

$html = '<html><body><b>my body</b></body></html>';
$text = 'my body';

$mime->setTXTBody($text);
$mime->setHTMLBody($html);

$body = $mime->get();
$headers = $mime->headers($headers);
$mail_object =& Mail::factory('smtp', $GLOBALS['pear_mail_config']);
$mail_object->send('test@mydomain.com', $headers, $body);

这是我收到的电子邮件:

From: info@mydomain.com
Subject: mysubject
text_encoding: 7bit
text_charset: UTF-8
html_charset: UTF-8
head_charset: UTF-8
Content-Type: multipart/alternative;
boundary="=_7adf2d854b1ad792c802a9db31084520"
Message-Id: <.....cut.....>
Date: Mon, 8 Oct 2012 15:40:54 +0200 (CEST)
To: undisclosed-recipients:;

--=_7adf2d854b1ad792c802a9db31084520
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="ISO-8859-1"

my body

--=_7adf2d854b1ad792c802a9db31084520
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="ISO-8859-1"

<html><body><b>my body</b></body></html>
--=_7adf2d854b1ad792c802a9db31084520--

看来我设置的 Content-Type header 被完全忽略了。我本来期望有一些 setHTMLHeaders 和 setTXTHeaders 函数,但似乎没有这样的函数。我错过了什么吗?如何将两个 Content-Type header 设置为 UTF-8?

最佳答案

我发现标题应该以不同的方式编写。特别是,其中一些是 mime 对象的参数,而不是电子邮件 header 。然后应将 mime_params 数组传递给 get() 函数。

这是设置标题的正确方法:

$headers = array(
'From' => 'info@mydomain.com',
'Return-Path' => 'info@mydomain.com',
'Subject' => 'mysubject',
'Content-Type' => 'text/html; charset=UTF-8'
);

$mime_params = array(
'text_encoding' => '7bit',
'text_charset' => 'UTF-8',
'html_charset' => 'UTF-8',
'head_charset' => 'UTF-8'
);

$mime = new Mail_mime();

$html = '<html><body><b>my body</b></body></html>';
$text = 'my body';

$mime->setTXTBody($text);
$mime->setHTMLBody($html);

$body = $mime->get($mime_params);
$headers = $mime->headers($headers);
$mail_object =& Mail::factory('smtp', $GLOBALS['pear_mail_config']);
$mail_object->send('test@mydomain.com', $headers, $body);

关于php - Pear Mail,如何以UTF-8发送纯文本/文本+文本/html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com