【发布时间】:2013-01-06 17:47:31
【问题描述】:
为了让生活变得困难,我工作的客户正在使用一个运行在 PHP4.0 上的非常大但又旧的系统,他们不希望添加任何额外的库。
我正在尝试通过 PHP 发送一封电子邮件,其中包含附件和随附的文本/html 内容,但我无法在一封电子邮件中同时发送。
这会发送附件:
$headers = "Content-Type: text/csv;\r\n name=\"result.csv\"\r\n Content-Transfer-Encoding: base64\r\n Content-Disposition: attachment\r\n boundary=\"PHP-mixed-".$random_hash."\"";
$output = $attachment;
mail($emailTo, $emailSubject, $output, $headers);
这会发送文本/html:
$headers = "Content-Type: text/html; charset='iso-8859-1'\r\n";
$output = $emailBody; // $emailBody contains the HTML code.
这会发送一个包含 text/html 以及附件内容的附件:
$headers = "Content-Type: text/html; charset='iso-8859-1'\r\n".$emailBody."\r\n";
$headers = "Content-Type: text/csv;\r\n name=\"result.csv\"\r\n Content-Transfer-Encoding: base64\r\n Content-Disposition: attachment\r\n boundary=\"PHP-mixed-".$random_hash."\"";
$output = $attachment;
我需要知道的是如何在电子邮件正文中发送带有 text/html 的电子邮件并添加附件。我确定我在这里遗漏了一些非常简单的东西!
提前致谢。
【问题讨论】:
-
搜索发送“多部分”电子邮件。 One example is here。此示例包含 text/html 和 text/plain 一部分,但您应该能够根据需要对其进行调整。
-
如果您能够这样做,请更新 PHP。 PHP4 太旧了,据我所知不再维护 - 所以甚至不会为 PHP4 分支进行安全修复。上一次 PHP4 更新是在 2008 年!
-
坦率地说,如果客户对我说“我正在使用 PHP 4.0,我不准备升级”,我会告诉他们我不准备在他们的项目。
-
@Hikaru-Shindo:正如我所说,这是一个非常大的系统(大约 15,000 个 PHP 文件)。其中大部分是在 1998/9 年创建的,升级几乎是不可能的,因为它需要的时间太长。编辑:我并不是说我喜欢他们使用 PHP4.0 的事实,但我对此无能为力。
-
您将遇到的另一个问题是 PHP 4 本身非常不安全,任何仍然支持它的操作系统也是如此。如果他们将其用于面向公众的网站,那么他们就是疯了,而且也疏忽了客户的数据。该系统面临被黑客入侵的直接危险(如果还没有被入侵的话)。 你的危险在于,如果你是最后一个工作的人,你最终可能会受到指责。仅出于这个原因,我建议您现在就走开,以免您过多参与。