【发布时间】:2011-07-05 15:02:35
【问题描述】:
您好,我正在尝试通过 PHP 网络表单发送 HTML 电子邮件。表单工作正常,如果我将 $name、$address 等变量传递到消息中,它就可以通过,但是当我尝试使用 HTML 对其进行格式化时,我似乎无法将这些变量传递到消息中。这是我在 w3schools 上找到的示例代码,但我似乎无法调整它来做我想做的事:
<?php
....
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "HTML email";
$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>
<p>This email contains HTML Tags!</p>
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
</tr>
</table>
</body>
</html>
";
....
?>
我想要做的是传递变量 $name ,它显示“john doe”,我想一旦我弄清楚我应该能够传递所有其他变量。
提前感谢您的帮助。
【问题讨论】:
-
您能解释一下无法传递变量是什么意思吗?如果你把 $name 放在
<td>标签之间,会发送什么? -
请确保您正在清理从表单中收集的数据。如果您不这样做,您将面临可能的代码注入攻击。
-
您的电子邮件格式非常糟糕 - HTML 部分必须具有 mime 类型、配置和编码以及分隔符。虽然某些 MUA 仍会呈现它,但您可能希望获得类似 phpmailer 之类的东西,它可以正确完成它。
-
@symcbean: 或者只使用 PHPMailer/Swiftmailer 为您完成所有这些工作,而不是尝试手动构建 mime 信封。