包含HTML的PHP​​邮件程序无法正确显示

时间:2010-03-29 20:56:35

标签: php email xhtml

这里有一些我一直在研究的代码,基本上我需要设置一个自动电子邮件,在他们填写表格后发送给用户,目前正在进行,但HTML是不能在电子邮件客户端内显示它。

我检查了Gmail,Outlook和Mac邮件,但没有一个正确显示HTML。

这是代码

<?php
    session_start();
    $_SESSION['name'] = $_POST['name'];
    $name = $_SESSION['name'];
    $email_1 = $_POST['email_1'];
    $email_2 = $_POST['email_2'];
    $email_3 = $_POST['email_3'];
    $email_4 = $_POST['email_4'];
    $id_num = $_POST['id_num'];
    $tel = $_POST['tel'];
    $email = $_POST['email'];



    //sets the current date

    $curDate = date("Y-m-d");

    // Example


    require_once("mailclass/htmlMimeMail.php");
    $mail = new htmlMimeMail();
    $mail->setSubject("Your submission to MyWebsite!");
    $mail->setFrom("MyWebsite <info@website.co.za>");
    $mail->setFrom("MyWebsite <info@website.co.za>");
    $email_address = $email_1 . "," . $email_2 . "," . $email_3 ."," . $email_4 ;
    $mail->setBcc($email_address);





    $day = "
         <body style="'background: #000000; color: #FFFFFF;'">
         <div style="'background-image: url(http://www.website.com/images/mailerbg.jpg); width: 900px; height: 839px; margin: 0 auto;'">
         <div style="'width: 620px; height: 280px; position: relative; top: 155px; left: 25px;'">
                <h1><br>your friend $name<br><br><br></h1>
            </div>    
        </div>
        </body>";

    $mail->setHTML($day);   
            $result = $mail->send(array());

    ?> 

代码非常混乱,从我这么多地搞砸了,但是当消息到达目的地时,基本上没有任何HTML显示在电子邮件客户端中,我怎么能让它显示为邮件客户端内的正确HTML页面?

我假设我的逃避没有正确完成,这就是为什么没有显示它应该的原因?

提前Thanx!

1 个答案:

答案 0 :(得分:3)

在这种情况下显示PHP代码是无用的。我们需要查看最终生成的电子邮件。

然而,引起注意的是一些错误的引用:

 <body style="'background: #000000; color: #FFFFFF;'">

应该是

 <body style="background: #000000; color: #FFFFFF;">

也许这已经解决了。

此外,根据this great guide,电子邮件几乎不支持定位 - 这也可能会影响布局。