- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试以文本和 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/
如下图所示,我已经安装了 Pear,并且有一个 PhpUnit 文件夹,但是当我运行这段代码时(来自 Yii 的一本书), % phpunit functional/SiteTest.php
在 Windows 上,当我运行时 pear config-set auto_discover 1 出现以下错误 PEAR_Config::writeConfigFile fopen('C:\Wind
我阅读了其他 PHPUnit 安装问题,但没有任何成功。我的 PEAR 安装发生了什么? $ sudo pear update-channels Updating channel "component
我阅读了其他 PHPUnit 安装问题,但没有取得任何成功。我的 PEAR 安装发生了什么? $ sudo pear update-channels Updating channel "compone
我正在尝试在命令行上安装 PEAR,但没有任何反应。这是我尝试过的: wget http://pear.php.net/go-pear.phar php go-pear.phar 还尝试在 suhos
我正在尝试在命令行上安装 PEAR,但没有任何反应。这是我尝试过的: wget http://pear.php.net/go-pear.phar php go-pear.phar 还尝试在 suhos
我刚刚在 Windows 7 上新安装了 WAMP,我正在尝试让 PEAR 工作。事情从一开始就不对劲。当我尝试执行 go-pear.bat 文件时,它显示了这个。 phar "C:\wamp\bin
我正在将一个站点从 pear DB 更新到 MDB2,我已经完成了相当多的工作,但我在查询时遇到了困难,我不确定他们在这里试图实现什么。 谁能解释一下。 在这里 $bookRes =
我正在尝试将 PEAR 包安装到我最近在 Windows 7 64 位上安装的 XAMPP PHP (PHP 5.3.1)。 安装新包失败,因为 PEAR 尝试访问 c:\windows\pear.i
我不确定如何根据 PEAR 网站上的说明更改我的 php.ini 文件 它说“在任何情况下,PEAR 的 php_dir 都应该在包含路径中。如果没有,请将它添加到系统的 php.ini 中。” 在我
我曾尝试使用 PEAR 连接到 pear.phpunit.de 和其他三个类似的连接,但由于连接超时而无法连接,在 PEAR 中更新连接后,没有任何进展。 另外,我尝试通过更改 phpunit.php
我从源代码安装了 php7.2.2,并开始通过 pecl install sqlsrv 获取 mssql 扩展。它响应 pecl search sqlsrv,但通知我运行 pear channel-u
我在 Windows7 上安装了 XAMPP。更新 pear.php.net channel 后: pear channel-update pear.php.net 并尝试安装新包,例如 pecl i
当我运行时: peardev install phpunit/PHPUnit 我得到以下信息: No releases available for package "pear.phpunit.de/P
几乎所有免费网络托管服务器, 你不能使用PDO + MySQL。 他们缺少 PDO 驱动程序。 所以我正在考虑选择 pear MDB2, 或 DB_DataObject。 你向我推荐哪一个? 给我你的
如题,不知道Ruby和Rails有没有这样的辅助方法? 我知道 Ruby 的 join 方法,但它没有考虑“and”。 最佳答案 您正在寻找来自ActiveSupport 的to_sentence:h
在 pear.phpunit.de/PHPUnit 中安装 PHPUnit 未知 channel pear.phpunit.de 时出错 无效的包名称/包文件 "Debian-4 操作系统上的 pea
尝试安装时 PEAR通过运行 go-pear.php (来自 cPanel GoDaddy 托管帐户的根目录),我收到以下错误: Starting installation ... Loading z
之前已经解决了这个问题,我尝试提供所提供的解决方案,并认为我做错了什么。我正在尝试使用Mountaion Lion在Mac上配置PHP Codesniffer。我认为这并不重要,但是我正在使用XAMM
当我试图通过 pear 下载一个包时,它给了我这个错误(它不仅适用于 phpunit): No releases available for package "pear.phpunit.de/phpu
我是一名优秀的程序员,十分优秀!