我目前有一个jquery函数,其中存储了预先编写的字符串,如下所示:
$('#message').val("Your parts have been ordered. We'll let you know when we receive the parts and begin installing them.");
当我单击一个按钮时,它将获取字符串并将其填写在textarea
中,以使填写表单更容易。它用正确的信息填充textarea
,并且在实际的表单元素上看起来很棒。
但是,当我使用 PHP 邮件函数将消息发送到客户端时,在每个'
、"
和其他特殊字符处,它会在字符之前插入一个'
,因此它将输出如下:
您的零件已订购。当我们收到零件并开始安装它们时,我们会通知您。
是否有一个内置函数可以在发送电子邮件之前运行变量?
我一直在做一些研究,我发现最接近的是PHP htmlspecialchars
函数,但这与我想要实现的完全相反。
获取 POST 变量:
$commentmessage = mysqli_real_escape_string($conn, $_POST['message']);
设置电子邮件的标题(可能相关,因为我使用表格格式化它):
$headers = "From: Repairs@email.com 'r'n";
$headers .= "Reply-To: ". $useremail . "'r'n";
$headers .= "CC: myemail@email.com 'r'n";$headers .= "MIME-Version: 1.0'r'n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1'r'n";
创建消息:
$emailmessage = wordwrap($emailmessage, 100, "'r'n");
$emailmessage = '<html><body>';
$emailmessage .= '<img src="imageurl" alt="Logo" />';
$emailmessage .= '<table rules="all" border="1" style="border-color: #666;" cellpadding="10">';
$emailmessage .= "<tr style='background: #eee;'><th colspan='2'><strong>" . $commentSubject ."</strong></th></tr>";
$emailmessage .= "<tr><td>" . $commentmessage . "</td></tr>";
$emailmessage .= "<tr><td><b>Ticket #: </b>" . $ticketid . "</td></tr>";
$emailmessage .= "</table>";
$emailmessage .= "</body></html>";
// Send Mail By PHP Mail Function
if (mail($to, $subject, $emailmessage, $headers)) {
$message = "Your mail has been sent successfully!";
}
else {
$message = "Failed to send email, try again.";
}
对于 PHP,你有一个内置函数:stripslashes()。