Php HTML邮件显示错误

Php HTML邮件显示错误,php,html-email,Php,Html Email,当我通过邮件发送html消息时,它将破坏邮件帐户中的设计。代码如下: <?php $center_part2 = ""; $mail_ID = "exmaple.gmail.com"; $subject = "UnTouched Ticket Notification"; $headers = "From: example.com\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html;

当我通过邮件发送html消息时,它将破坏邮件帐户中的设计。代码如下:

<?php
$center_part2 = "";
$mail_ID = "exmaple.gmail.com";
$subject = "UnTouched Ticket Notification";
$headers = "From: example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$part = '<html><body>';
$part .= '<div style="background-color: #EEEEEE;border-bottom: 1px solid #DCDCDC;padding: 10px 10px 20px;width: 500px; float:left;font-size:12px;font-weight:bold;">';
$part1 = '<div style="width:500px;">';
$part1 .= '<div style="width:500px;background-color:#eeeeee;padding: 10px 0 20px;border-bottom:1px solid #dcdcdc;">';  
$part1 .= '<div style="width:450px;background-color:#eeeeee;padding: 10px 0 20px;border-bottom:1px solid #dcdcdc; height:auto; float:left;font-size:12px;margin-left:50px; font-weight:bold;">';
$part3 = '</div></div></div>';
$part3 .= '</body></html>';
$center_part = 'You have opened '.$inr.' tickets . But the following tickets are not updated yet ,';
$center_part2.="<div style='width:345px;color:#000000;font-size:12px;margin-left:75px; font-weight:bold; height:auto; margin-top:10px;'>"; 
    for ($k=1; $k<=70; $k++){

       $new.="<p>Ticket &#35;".$K." Last Updated  ".$K." days ".$K." hours  ago &#33;</p>";
    }
    $center_part2.=$new."</div>";
    if($mail_ID){
        $message = "";
        $center_part1 = 'Dear Admin ,'; 
        $message = $part.$center_part1.$part1.$center_part.$center_part2.$part3;
        mail($mail_ID, $subject, $message, $headers);
    }
?>

我打开gmail时收到的邮件如下:


那么我的代码有什么问题呢?

您还没有关闭以下代码的

$part .= '<div style="background-color: #EEEEEE;border-bottom: 1px solid #DCDCDC;padding: 10px 10px 20px;width: 500px; float:left;font-size:12px;font-weight:bold;">';
$part.='';

您尚未关闭以下代码的

$part .= '<div style="background-color: #EEEEEE;border-bottom: 1px solid #DCDCDC;padding: 10px 10px 20px;width: 500px; float:left;font-size:12px;font-weight:bold;">';
$part.='';

我将按照戴维德地狱的建议发表我的评论作为回答,以防其他人在这里遇到同样的问题

显示问题是由于
标签具有
float:left
和固定宽度,导致它们在宽度允许的情况下并排堆放


随机
出现的问题插入电子邮件内容是因为超过了每行的最大字符数。将每行保留在512个字符以下将解决此问题。使用
\n
根据需要分解内容。

我将按照davidethell的建议发布我的评论作为答案,以防其他人在这里遇到同样的问题

显示问题是由于
标签具有
float:left
和固定宽度,导致它们在宽度允许的情况下并排堆放


随机
出现的问题插入电子邮件内容是因为超过了每行的最大字符数。将每行保留在512个字符以下将解决此问题。使用
\n
根据需要分解内容。

介意完整发布生成的HTML吗?您考虑过使用模板吗?这非常混乱,将来很难维护。生成的html会有所帮助。还有,你为什么要这样寄?有更好的方式发送html电子邮件。不确定这是否有用:不,我只需要这样发送?为什么要使用这么多带有浮动和固定宽度的
标记?重复的
float:left
将并排堆叠元素,除非您
clear:left
。在重复一行文本的情况下,创建简单的输出应该不需要那么复杂。介意完整发布生成的HTML吗?您考虑过使用模板吗?这非常混乱,将来很难维护。生成的html会有所帮助。还有,你为什么要这样寄?有更好的方式发送html电子邮件。不确定这是否有用:不,我只需要这样发送?为什么要使用这么多带有浮动和固定宽度的
标记?重复的
float:left
将并排堆叠元素,除非您
clear:left
。在重复一行文本的情况下,创建简单输出应该不需要那么复杂。