HTML电子邮件使用PHP脚本

时间:2012-12-25 09:43:22

标签: php html email html-email

我希望以HTML格式发送电子邮件,在此电子邮件中我需要从php表单传递数据。电子邮件作为html电子邮件成功发送,但不显示从PHP VARIABLE传递的数据。

$name = "PHP TEXT";
$headers = "From: " ."mail@example.com" . "\r\n";
$headers .= "Reply-To: ". "mail@example.com" . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

$message = "<html><body><h1>HTML TEXT <?php echo $name; ?></h1></body></html>";

$email_to = 'example@mail.com'; //the address to which the email will be sent
$subject = "test";
$email    =   "example@mail.com";

if (mail($email_to, $subject, $message, $headers)) {
    echo 'sent'; // success      
} else {
    echo 'failed'; // failure    
}

5 个答案:

答案 0 :(得分:5)

这一行:

$message = "<html><body><h1>HTML TEXT <?php echo $name; ?></h1></body></html>";

应该是这样的:

$message = "<html><body><h1>HTML TEXT $name </h1></body></html>";

$message = "<html><body><h1>HTML TEXT " . $name . " </h1></body></html>";

<?php?>用于指定其中的文本是PHP代码,而不是HTML。 Here是关于此的一些细节。

但是你已经在PHP代码块中,而不是指定另一个PHP块,你应该使用字符串连接。

答案 1 :(得分:2)

您没有在脚本中使用任何表单值。你知道$ _POST或$ _GET是如何工作的吗?

您正在将$ name设置为硬编码值,因此在使用它时它始终是该值,而且,由于您使用PHP创建字符串,因此您无需在此行中回显php。即(因为你使用双引号)

$message = "<html><body><h1>HTML TEXT $name;</h1></body></html>";

因此,如果您可以发布HTML表单,则$ name分配可能类似于

$name  = $_POST['name']

但强烈建议您清理并验证所有用户提供的信息。它应该是一个相当简单的谷歌搜索。

答案 2 :(得分:1)

替代解决方案可以关闭&#34;之前喜欢

$message = "<html><body><h1>HTML TEXT ".$name." how are you?</h1></body></html>";

不需要启动和关闭PHP,因为您已经在PHP工作区中。

答案 3 :(得分:1)

试试这个..

$message = "<html><body><h1>HTML TEXT".$name."</h1></body></html>";

您正在将html分配给php变量。所以你不必在那里echo变量..只需使用适当的连接

答案 4 :(得分:1)

$ message变量本身被错误地使用了。

$message = "<html><body><h1>HTML TEXT <?php echo $name; ?></h1></body></html>";

应该是

$message = "<html><body><h1>HTML TEXT  $name </h1></body></html>";

或者这个:

$message = "<html><body><h1>HTML TEXT ".$name." </h1></body></html>";