【发布时间】:2020-10-21 12:59:37
【问题描述】:
我知道有很多类似的问题是关于不使用mail() 显示的 html 标签。我已经阅读了一堆,看看它是否提到了我的具体问题,但我找不到任何东西。
我的问题不在于 HTML 标记无法正确呈现,而是 <html>、<head>、<title> 和 <body> 标记完全丢失。所有其他标签都会正确显示。我已经通过更改标题进行了研究和测试,但我总是得到相同的结果。如果我删除标题,电子邮件将显示所有标签,但以常规文本显示。当我添加标题时,4 个主要标签消失了。
我不确定这是 PHP 的事情还是电子邮件客户端的事情。在 Gmail 上,所有这 4 个标签都消失了,但在 Yahoo 上,我确实得到了 title 标签。
我检查以确保 mail.add_x_header 已设置并且确实是。
我正在开发一个 Joola 网站,Joomla 也提供了一个发送电子邮件的类。我首先尝试使用它,我得到了相同的结果。这就是我尝试使用 PHP 的邮件功能的原因。
下面是我正在使用的代码。我是从 tutorial 站点获得的,我尝试将标题更改为不同的设置,但我总是得到相同的结果。
$to = "test_1@yahoo.com";
$subject = "My HTML email test.";
$headers = "From: info@test.org\r\n";
$headers .= "Reply-To: info@test.org\r\n";
$headers .= "Return-Path: info@test.org\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = "<html><body>";
$message .= "<h1> This is a test </h1>";
$message .= "</body></html>";
if ( mail($to,$subject,$message,$headers) ) {
echo "The email has been sent!";
`enter code here`} else {
echo "The email has failed!";
}
【问题讨论】:
-
这仍然有点令人困惑。我有点想可能是电子邮件客户端,但我之前也创建了电子邮件模板,我会包含所有的 HTML 标记。这就是为什么我不完全确定。我会在 head 标签中添加样式声明,样式就会出现。这就是我在这种情况下想要做的。现在唯一的区别是电子邮件是使用 PHP 生成的。所以我认为我的理解是 HTML 标签只有在您使用像 MainChimp 这样的电子邮件提供商时才能正确显示。
标签: php email html-email