PHP邮件功能弄乱了我的电子邮件CSS


php mail function messes my email css

我使用一个简单的电子邮件函数,它弄乱了我所有的css..它将所有div一个放在另一个下面,而不是在包装器div中。有没有办法克服它?

 function email_template($app_link, $img_link, $app_name){
       $message='<html>
        <head>
    <title>Purchase Successful!</title>
         </head>
            <body>
      <div id="pic" style="position:relative; text-align:center; margin:0px auto;width:320px; height: 480px;">
       <a href="http://1111111111111edapps.com">  
       <div id="logo" style="position:absolute; width:130px; height:35px; z-index:99999;top:5;">
       </div>
       </a>
        <div id="clickHere" style=" position:absolute;width:320px;height:50px;z-index:99999;top:60px;text-align: center;">
            <span id="clickHereText" style="font-size:140%; color:white;"> <a href="'.$app_link.'" style="color:yellow">Click Here</a> to Download<br/>
                 your phonemate app
                 </span>
        </div>
        <div id="appImg" style="position:absolute;width:50px; height:50px;z-index:99999; left:50px;top:210px;">
            <img src="http://1111111111111edapps.com/'.$img_link.'" width="53px" height="53px"/>
        </div>
        <div id="appLabel" style="position:absolute; width:50px; height:10px; z-index:99999; text-align: center; left:50px; top:260px;">
            <span style="color:white; font-size: 50%;">'.$app_name.'</span>
        </div>
        <div id="downloadLink" style="position:absolute; width:320px; height:30px;  z-index:99999; bottom:0px; text-align: center;">
            <a href="'.$app_link.'" style="color:yellow">Download our app on 1111111111111edApps.com</a>
        </div>
       <img src="http://1111111111111edapps.com/email/images/1111111111111edAppEmail.jpg"/>
    </div>
       </body>
   </html>';
  return $message;

 }

电子邮件功能有效..但div应该在里面..图片部。但他们在它之外。 有没有办法传递电子邮件并使其呈现与我在常规页面上测试它时相同的方式?

额外说明:我的php:

     $to = /*TO EMAIL ADDRESS*/"";
 $subject = "Hi!";
$body=email_template('http://1111111111111edapps.com/app_dl.php?app_id=34', $app_pic, $app_name);
echo $body;
 $headers  = 'MIME-Version: 1.0' . "'r'n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "'r'n";
 if (mail($to, $subject, $body,$headers)) {
   echo("<p>Message successfully sent!</p>");
  } else {
   echo("<p>Message delivery failed...</p>");
  }
  }

我通过 W3C 标记验证器运行了您的代码,似乎您可能需要在这里重新考虑您的方法:

<a href="http://1111111111111edapps.com">
<div id="logo" style="position:absolute; width:130px; height:35px; z-index:99999;top:5;">
</div>
</a>

将内联元素放在元素内(例如带有 display: block;应用的 span(。我愿意打赌(此时此刻(非法div 正在给您带来一些问题。

请记住,电子邮件客户端不像 Web 浏览器那样设计用于处理 HTML 错误,虽然某些客户端的支持非常好,但其他客户端可能远远落后(我在看你,Outlook 2007+(。

没有提到您测试了哪些电子邮件客户端以及哪些电子邮件客户端给您带来了问题,因此,如果更正标记无法解决问题,请向我们提供更多信息。