PHP邮件包含HTML不能正确显示

问题描述:

这里是我一直在努力的一些代码,基本上我需要设置一个自动电子邮件发送给用户后,他们填写表单,目前它正在做,但HTML不显示,因为它应该在电子邮件客户端内。PHP邮件包含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 <[email protected]>"); 
    $mail->setFrom("MyWebsite <[email protected]>"); 
    $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提前!

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

什么引人注目,虽然是一些错误引用:

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

应该

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

也许能解决它了。

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

+0

不错的anwser,但请记住,使用pekka的代码时,你必须使用单引号的decleration($ day ='';) – Flatlin3 2010-03-29 21:07:03

+1

@Tim好眼睛!我想知道OP的代码如何工作,所有嵌套的双引号? – 2010-03-29 21:13:44

+0

这也是我跳出来的。只需要添加一下,如果你想逃避这些双引号,只需在引号之前加一个反斜杠,就像这样:#000000; color:#FFFFFF;'' 这样,当你输入双引号时,你不会过早地关闭你的HTML主体字符串。或者,像Tim说的那样,你可以把整个字符串括在单引号中,并使用双引号,就像普通的引号一样,反之亦然。 – 2010-03-29 22:23:45