【问题标题】:php mail() html - sending as plain textphp mail() html - 以纯文本形式发送
【发布时间】:2018-09-09 16:01:43
【问题描述】:

伙计们,

多年来,我使用 PHP 发送了许多电子邮件,但从未遇到过 HTML 问题。 前几天我启动了一个新的 Apache/PHP 服务器,并且电子邮件发送正常。

所有电子邮件都以纯文本形式发送。似乎编码不起作用。

即使是:

$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

正在设置中...发送的电子邮件不是 HTML,而是纯文本。

我可以使用相同的 PHP 脚本并在另一台服务器上运行它,然后我会收到一封 HTML 电子邮件。

所以我知道我的 PHP 脚本是正确的。 PHP/Apache 中的哪些服务器设置会导致所有电子邮件都以纯文本形式发送?

以下是收件人在文本电子邮件的消息区域中收到的内容:

Content-type: text/html; charset=iso-8859-1

From: no-reply@yahoo.com
Message-Id: <20180909154528.C4128612EC@ww1.localdomain>
Date: Sun,  9 Sep 2018 11:45:28 -0400 (EDT)

<html><body><h1>Hello, World!</h1></body></html>

我的脚本代码:

$to = 'test99@domain.com';
$subject = 'php test';

$from='no-reply@yahoo.com';

$headers ='';
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: '.$from.' '. "\r\n";

$message = '<html><body>';
$message .= '<h1>Hello, World!</h1>';
$message .= '</body></html>';

mail($to, $subject, $message, $headers);

【问题讨论】:

  • 您使用的是哪个 SMTP 服务器?是否设置为仅发送纯文本电子邮件?能不能也秀一下代码?
  • 你能把你的邮件脚本分享给mail()函数吗?
  • 嗨,您的 content-type 之前似乎有一个换行符;标题之间的任何空行都会告诉电子邮件客户端换行符后面的文本是电子邮件内容,而不是标题。话虽这么说,如果您的脚本在一台服务器上运行良好,而不是在新服务器上运行良好,那么这可能是换行符的配置问题(在这两种情况下都是 linux 服务器,还是一个是 windows 服务器?)。顺便说一句,您的 From 标题之前不应该有一个空行。
  • SMTP = 在本地发送邮件
  • 两个 Linux 服务器... Centos

标签: php html email


【解决方案1】:

我假设,您的电子邮件客户端正在考虑 smtp 服务器“不安全”,因此只会将所有 html 显示为纯文本,而不是呈现它。 (为了避免触发隐藏脚本,可能会通过加载一些链接资源如css或图像来调用)

PHPs mail() 函数使用在 php.ini 中配置的 smtp 服务器。大多数时候,根本没有任何配置,因此服务器本身充当“smtp-server”,保证被检测为垃圾邮件,因为大约 99% 的最基本的垃圾邮件检查将失败。

我建议切换到一些可用的 PHP-Mail-Clients(例如 https://github.com/PHPMailer/PHPMailer)并使用已知可靠且良好的服务器配置要发送的每封电子邮件(使用 SMTP-Auth)配置 SMTP-Server,而不是“localhost”。

【讨论】:

  • 电子邮件客户端正在工作......当它从其他服务器发送时...... HTML 将按应有的方式显示。
  • @Matthew 从两台不同的服务器收到相同的电子邮件并不意味着我的电子邮件客户端将为两台服务器提供相同级别的信任。
猜你喜欢
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 2012-09-28
  • 1970-01-01
  • 2020-05-26
  • 2021-04-12
  • 1970-01-01
  • 2010-09-07
相关资源
最近更新 更多