我正在尝试从自定义控制器发送HTML电子邮件。
这里是代码。
public function execute()
{
$to = "dev@test.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>'.$_POST["company_name"].'</td>
</tr>
</table>
</body>
</html>
";
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// More headers
$headers .= 'From: <webmaster@example.com>';
mail($to,$subject,$message,$headers);
如何根据POST请求使用动态变量,以便电子邮件以动态形式完美发送。
我尝试粘贴上面的代码,但是在PHP Strom中仍然遇到语法错误。
任何帮助将不胜感激。
答案 0 :(得分:2)
代替:
<td>'.$_POST["company_name"].'</td>
使用:
<td>".$_POST['company_name']."</td>
您的HTML用双引号引起来,因此要返回PHP,您还需要使用双引号。
答案 1 :(得分:0)
两件事。对于多行字符串,我建议使用heredoc。其次,将表单数据保存到变量中,然后在字符串中使用它。
$company_name = $_POST['company_name'];
$message = <<<EOD
<html>
<h1>$company_name</h1>
<html>
EOD;