php邮件功能混淆了我的电子邮件css

时间:2012-05-21 15:02:01

标签: php email

我使用一个简单的电子邮件功能,它会混淆我所有的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应该在..pic 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>");
  }
  }

1 个答案:

答案 0 :(得分:3)

我通过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; applied的span)。我愿意下注(此时此刻)非法div会给你带来一些问题。

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

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