2012-07-12 69 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