为什么不';我的PHP联系人发送的电子邮件不是HTML格式的吗?

为什么不';我的PHP联系人发送的电子邮件不是HTML格式的吗?,php,html,forms,html-email,contact-form,Php,Html,Forms,Html Email,Contact Form,我正在尝试制作自己的自定义联系人表单。在对其进行改进测试时,我发现电子邮件不是HTML格式的。我不知道为什么会发生这种情况,但我想我一定是做错了什么,因为我的电子邮件服务提供商从其他来源接收HTML格式的电子邮件。我认为messagebody变量中的HTML代码也是正确的,因此它必须与headers变量或我设置它的方式有关 编辑:与别人建议的不同,使用样式标签不是我的问题,因为我使用的不是Gmail(不接受它们),而是Outlook(接受它们) if($\u POST['Submit'])){

我正在尝试制作自己的自定义联系人表单。在对其进行改进测试时,我发现电子邮件不是HTML格式的。我不知道为什么会发生这种情况,但我想我一定是做错了什么,因为我的电子邮件服务提供商从其他来源接收HTML格式的电子邮件。我认为messagebody变量中的HTML代码也是正确的,因此它必须与headers变量或我设置它的方式有关

编辑:与别人建议的不同,使用样式标签不是我的问题,因为我使用的不是Gmail(不接受它们),而是Outlook(接受它们)

if($\u POST['Submit'])){
如果(空($_POST['Phone'])){
$content=”
发件人:
$name

电邮: $email

$message .黑体字{ 字体大小:粗体; } "; }
以上是我的表单操作PHP代码的一部分。其余部分是对每个输入的一些正则表达式验证,并作为对这些输入的响应进行响应。提交的内容被发送到Outlook电子邮件地址,我知道该地址与头部或正文中的样式标记兼容。我做错了什么

客户实际收到的电子邮件样本:

<html>
<head></head>
<body>
  <div class='boldtext'>From:</div>
  John Doe
  <br/>
  <div class='boldtext'>E-mail:</div>
  email@email.com
  <br/><br/>
  This is a message.
<style>
.boldtext {
font-weight: bold;
}
</style>
</body>
</html>

发件人:
无名氏

电邮: email@email.com

这是一条信息。 .黑体字{ 字体大小:粗体; }
据我所知,您不能像提供的那样在电子邮件中添加样式,但您可以提供内联样式,仅用于在电子邮件中添加样式。请执行以下示例代码

<div style="font-weight:bold;">From:</div>
$name
<br/>
<div style="font-weight:bold;">E-mail:</div>
$email
<br/><br/>
<p style="font-weight:100;">$message</p>
来自:
$name

电邮: $email

$message

编辑:你的代码是这样的

 if ($_POST['Submit']) {
   if (empty($_POST['Phone'])) {
      $content = "<html>
          <head></head>
          <body>
            <div class='boldtext'>From:</div>
            $name
            <br/>
            <div class='boldtext'>E-mail:</div>
            $email
            <br/><br/>
            $message
           <style>
             .boldtext {
                font-weight: bold;
          }
          </style>
          </body>
        </html>";
   }
}
if($\u POST['Submit'])){
如果(空($_POST['Phone'])){
$content=”
发件人:
$name

电邮: $email

$message .黑体字{ 字体大小:粗体; } "; } }
你需要这样做

 if ($_POST['Submit']) {
   if (empty($_POST['Phone'])) {
      $content = '<html>
          <head></head>
          <body>
            <div style="font-weight:bold;">From:</div>
            '.$name.'
            <br/>
            <div style="font-weight:bold;">E-mail:</div>
            '.$email.'
            <br/><br/>
            <p style="font-weight:100;">'.$message.'</p>
          </body>
        </html>';
   }
}
if($\u POST['Submit'])){
如果(空($_POST['Phone'])){
$content='1
发件人:
“.$name。”

电邮: “.$email。”

”.$message

'; } }
我找到了发送的电子邮件不是HTML格式的原因。它与HTML或CSS无关,错误在mail()中;函数:

参数$from干扰了$headers,使HTML格式无法工作

邮件($to、$subject、$message、$from、$headers)

邮件($to、$subject、$message、$headers)


现在一切正常,CSS结构取决于电子邮件客户端的兼容性。

在这种情况下不需要内联样式。接收这些邮件提交的电子邮件服务提供商将是Outlook,而不是Gmail。所有内容都使用内联样式。此网站将把您的类转换为内联样式:这绝对不是我问题的答案。当你说“不使用html格式”时,你的意思是消息没有收到html标记吗?你能发布电子邮件客户端从php代码中收到的具体内容吗?当然,只是发布了。通过“不使用html格式”,我的意思是变量$content,本来就是这样,格式永远不会被读取。我想问题出在标题中,或者我没有正确声明电子邮件格式。应该是这样。谢谢,我会试试这个。我使用了样式标签,因为这个网站说Outlook接受它。我之前问了一个类似的问题,但没有解决,所以他们拒绝了建议我做一些类似于我问题中的代码的事情。按照我的建议尝试,这可能会对您有所帮助。:)我做了,它说:PHP语法检查:解析错误:语法错误,第14行代码中出现意外的“字体”(T_字符串)。是的,字面意思是:如果(空($\u POST['Phone']){$content=“发件人:$name
电子邮件:$email

$message”;}请查看答案,我已相应更改,这次只需复制粘贴,错误将不再存在。:)
 if ($_POST['Submit']) {
   if (empty($_POST['Phone'])) {
      $content = '<html>
          <head></head>
          <body>
            <div style="font-weight:bold;">From:</div>
            '.$name.'
            <br/>
            <div style="font-weight:bold;">E-mail:</div>
            '.$email.'
            <br/><br/>
            <p style="font-weight:100;">'.$message.'</p>
          </body>
        </html>';
   }
}