2013-08-23 41 views
0

我設計了一個HTML頁面,然後將其轉換爲在PHP中使用以發送HTML電子郵件。從PHP發送HTML電子郵件 - 結果不穩定

$message = '<!DOCTYPE html>'; 
$message .= '<html>'; 
$message .= '<body bgcolor="#E8E8E8 ">'; 
$message .= '<table bgcolor="white" >'; 
$message .= '<tr>'; 
$message .= '<td style="font-family:\'Helvetica Neue\',Helvetica,Arial,sans-serif;">'; 
$message .= '<img src="#" width="200px">'; 
$message .= 'This is a test page.'; 
$message .= '</td>'; 
$message .= '</tr>'; 
$message .= '</table>'; 
$message .= '</body>'; 
$message .= '</html>'; 

$to = "[email protected]"; 
$subject = "Pulling my hair out"; 
$headers = "From: [email protected]"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 

mail($to,$subject,$message,$headers); 

即使它看起來很完美的一個獨立的HTML頁面(我甚至提出,呼應了$消息陣列測試PHP頁面,它仍然看起來完美)就會有奇怪的事情錯了,在電子郵件(發送後)。

有時候會有隨機的!在文本的中間。有時,標籤中的樣式不會顯示在電子郵件中(當我檢查電子郵件的HTML時)。它似乎不穩定。

我在這裏錯過了什麼?

+0

如果您認爲編寫適用於主流瀏覽器的html很難,那麼與爲所有各種電子郵件客戶端編寫html相比,這沒什麼。我可以寫卷,但我懶惰:http://www.sitepoint.com/code-html-email-newsletters/ – 2013-08-23 02:43:34

回答

0

您可以在一個頁面emailresetTemplate.php 在這個頁面中寫這些線的

<?php ob_start();?>

這裏做你的HTML的東西.......例子下面........ .. 像.......
<div> <div style="background:url(<?php echo ABSOLUTE_PATH; ?>images/email/restpass/header.png) no-repeat; width:680px; height:127px; margin:0 0 0 10px;"> </div></div>

<?php
$contents = ob_get_contents(); ob_clean(); ?>

,包括像這樣

     include("emailresetTemplate.php"); 
         $to  = $email; 
         $subject = 'Your Password Reset Request'; 
         $message = $contents; 
         $headers = 'MIME-Version: 1.0' . "\r\n"; 
         $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
         $headers .= 'From: [email protected]' . "\r\n" . 
         'Reply-To: [email protected]' . "\r\n" . 
         'X-Mailer: PHP/' . phpversion(); 
         @mail($to, $subject, $message, $headers); 
          print "An email containing the password has been sent to you at ".$row["eMail"]; 
         } 
        else 
         { 
          echo("No such login in the system. please try again."); 
         }