0

我使用了一个简单的电子邮件功能,它弄乱了我所有的 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>");
  }
  }
4

1 回答 1

3

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

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

在 a 元素内放置一个内联元素(例如带有 display: block; applied 的 span)。我愿意(此时此刻)打赌非法 div 会给你带来一些问题。

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

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

于 2012-05-21T15:20:51.083 回答