PHP邮件不显示正文,头部标签



我知道有很多关于 html 标签不使用mail()显示的类似问题。我已经通读了一堆,看看它是否提到了我的特定问题,但我找不到任何东西。

我的问题不在于 HTML 标签无法正确呈现,而是<html><head><title><body>标签完全丢失。所有其他标签都会正确显示。我已经通过更改标题进行了研究和测试,但我总是得到相同的结果。如果我删除标题,电子邮件将显示所有标签,但以常规文本显示。当我添加标题时,4 个主要标签消失了。

我不确定它是PHP的东西还是电子邮件客户端的东西。在Gmail上,所有这4个标签都消失了,但是在雅虎上,我确实得到了title标签。

我检查以确保mail.add_x_header已设置并且已设置。

我正在一个Joola网站上工作,Joomla也提供了一个发送电子邮件的课程。我首先尝试使用它,我得到了相同的结果。这就是为什么我尝试使用PHP的邮件功能。

下面是我正在使用的代码。我从一个教程站点获得它,我尝试将标题更改为不同的设置,但我总是得到相同的结果。

$to = "test_1@yahoo.com";
$subject = "My HTML email test.";
$headers = "From: info@test.orgrn";
$headers .= "Reply-To: info@test.orgrn";
$headers .= "Return-Path: info@test.orgrn";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: text/html; charset=ISO-8859-1rn";
$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!";
}

这可能符合预期。电子邮件客户端尝试显示多封电子邮件,但他们没有使用大量的 iframe 或类似的东西,而是解析代码并将其剥离到相关部分。

所以他们会削减<html>;<title>没有意义,因为页面有自己的页面标题(电子邮件客户端页面(,除非他们想更改每封打开的电子邮件的标题,例如;<body>通常会变成<div>;<head>也会得到解释。

以下是Gmail网络邮件对随机电子邮件的<head>部分:

<div id=":csl" class="a3s aXjCH "><u></u>

<div style="margin: 0px; padding: 0px; min-width: 100%; background-color: rgb(255, 255, 255);"><!-- This is my <body> -->

在雅虎上也是如此:

<div data-test-id="message-body-container"><div data-test-id="message-view-body" class="I_52qC D_FY W_6D6F"><div class="X_6MGW"></div><div class="msg-body P_wpofO mq_AS" data-test-id="message-view-body-content"><div class="jb_0 X_6MGW N_6Fd5"><div><div id="yiv8851120227">
<title></title>

<style type="text/css">
... <!--lots of styles here -->
</style>

<div> <!--Used to be <body> -->

Android上的Gmail应用程序允许更多的事情:

<html><head>
<meta id="meta-viewport" name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=2" data-zoom-on="maximum-scale=2" data-zoom-off="user-scalable=no">

<link rel="stylesheet" type="text/css" href="https://mobile-webview.gmail.com/android_asset/conv.css">

<style>  .spacer{display: none !important }
img[blocked-src] { border: 1px solid #CCCCCC; }
</style>
<style>  .spacer{display: none !important }

</style>
</head>
<body style="margin: 0 16px;"><!--This was inserted-->
<script type="text/javascript">
var JS_TOKEN = 'TSONS4YTXAF2U436RLHPASX5HN3JIU3O';
window.ConversationView.createTracingInstant(JS_TOKEN, "BODY_PARSE_STARTED");
</script>
<div id="conversation-header" class="spacer" style="height: 116px;"></div>
<div id="conversation-promotion" class="spacer" style="height: 0px;"></div>
<div id="m#msg-f:1671067648779872745" class="mail-message expanded">
<div class="mail-message-header spacer" style="height: 80px;"></div>
<div class="mail-message-content collapsible zoom-normal mail-show-images " style="display: block; margin: 16px 0; user-select: auto; -webkit-user-select: auto;"><div class="clear"><u></u>
...
<div style="margin:0px;padding:0px;min-width:100%;background-color:#ffffff"> <!--Used to be <body>-->
...

最新更新