2012-12-17 108 views
1

我對PHP不熟悉,無法真正找到針對我的問題的特定解決方案。我們在印度外包了一個項目作爲後端,他們的一部分任務是創建一個帶有電子郵件確認的登錄。使用PHP,html格式的電子郵件確認電子郵件

下面是部分代碼:

$sql  = "SELECT * FROM `users` WHERE `email`='$name' AND `status`= 1"; 
$result = $db->select($sql); 
$num_row = $db->numrows($sql); 
if($num_row > 0) { 
    $row= $db->fetcharray($sql); 

    $Password = $row['password']; 
    $body  = "Dear ".$row['fname']." <br> <br>"; 
    $body  .= "Your password is : ".$Password." <br> <br>"; 
    $body  .= "Please login with below link : <br/>"; 
    $body  .= SITE_URL; 

    $email   = $row['email']; 
    $messageSubject = "Forgot Password : Quicksl"; 
    $messageBody  = $body; 

    sendContactMail(SENDER_NAME,SENDER_EMAIL,$messageBody,$email,$messageSubject); 
    echo "matched"; 

然而,當我們收到一封電子郵件,它仍包含從HTML標籤<br>,而不是渲染爲HTML。

它是否必須對語法做任何事情?如何通過上面的代碼將電子郵件格式化爲PHP,以便電子郵件中沒有<br>標籤,但它是從新行開始的?

讓我知道如果我沒有明確提出我的問題。

+3

什麼的sendContactMail()函數的代碼? –

+0

快速搜索「電子郵件Mime類型」 –

+0

您需要查看sendContactMail的代碼,這不是PHP函數AFAIK,因此它必須是自定義的,您需要查看該代碼以解決您的問題。 – Codeguy007

回答

8

您需要添加

$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 

,並通過$headers作爲PHP mail函數的最後一個參數,無論是。

0

您需要在標題中指定這是一個html電子郵件,因此它將被解釋爲html而不是純文本。

http://php.net/manual/en/function.mail.php

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$Password = $row['password']; 
$body  = "Dear ".$row['fname']." <br> <br>"; 
$body  .= "Your password is : ".$Password." <br> <br>"; 
$body  .= "Please login with below link : <br/>"; 
$body  .= SITE_URL; 
$email   = $row['email']; 
$messageSubject = "Forgot Password : Quicksl"; 
$messageBody  = $body; 

sendContactMail(SENDER_NAME,SENDER_EMAIL,$messageBody,$email,$messageSubject,$headers);

+0

我在哪裏完全插入,我只是試圖把它放在上面,但它沒有工作,所以我需要指定其他任何東西,有一個巨大的if/else語句登錄,所以我不知道代碼去哪裏 – Vlad

+0

@Vlad通過頭傳遞給你的sendContactMail函數,並使用該函數中的標題,如更新中所示回答 – Ghostman

+0

我已經嘗試過,但它沒有工作,有沒有辦法在這裏附加整個文件? – Vlad