2012-07-12 85 views
0

我不擅長PHP,所以這應該(希望)對你們中的一個人來說很容易。從變量發送來自PHP的HTML電子郵件

我想發送一個包含變量的PHP的HTML電子郵件。我可以發送一個沒有html變量的電子郵件,或者一個沒有變量的HTML電子郵件,但我似乎無法同時做到這一點。這裏是我的代碼:

<? 
$to = "[email protected]"; 
$from = "[email protected]"; 
$subject = "Hello! This is HTML email"; 
' 
//begin of HTML message 
$message = <<<EOF; 

<html> 
<p>Opt out of contact by phone<br /> 
    '. $_POST["Opt_out_phone"] .' 
</p> 
</html> EOF; 

$headers = "From: $from\r\n"; 
$headers .= "Content-type: text/html\r\n"; 

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

echo "Message has been sent....!"; ?> 

我從來沒有碰到過< < < EOF前,不知道它在做什麼。

回答

1

您正在使用HEREDOC語法並試圖終止字符串,並且不正確地和不必要地追加變量。要聲明與變量的字符串,這樣做:

$message = <<<EOF; 

<html> 
<p>Opt out of contact by phone<br /> 
    {$_POST["Opt_out_phone"]} 
</p> 
</html> EOF; 

注意,在定界符PHP手冊中的輸入與string docs, here的其餘部分。

+0

此外,** EOF **是用戶定義的變量。你可以選擇任何東西,只要你確定它不存在於你的例子中的字符串(你的html代碼)中,並且它不會是預定義的PHP常量。 – inhan 2012-07-12 17:23:55

+0

正確,只是它不是一個變量,它只是一個標識符。 – Lusitanian 2012-07-12 17:24:24

+3

你還應該注意終止標識符需要在一個沒有前面字符的新行上 - 你甚至不能縮進它。 – andrewsi 2012-07-12 17:28:36