下面是一个网站的一部分,订单被发送到一台小型计算机,该计算机直接在收据打印机上打印出电子邮件。
问题是有时(50次中有1次)电子邮件永远不会打印,即使你被发送到kvittering.php页面。
如果电子邮件100%发送,我如何做一个测试,只转发你到kvittering.php的任何想法?然后我就可以排除网站的错误来源,把重点放在打印机上。欢迎提出任何建议。
<?php
$headers = "From: www.testsite.dk 'r'n";
$headers.= "Content-Type: text/plain; charset=iso-8859-1 ";
$headers .= "Content-Transfer-Encoding: 8bit ";
$body = "$name_field'nTel. $phone_field'n$email_field 'nVil gerne bestille følgende:$menucard_to'nMed følgende ændringer'n $message";
header("Location: $redirect_field");
mail($to, $subject, $body, $headers);
?>
<script>
<!--
window.location= "kvittering.php"
//-->
</script>
订单被发送到一台小型计算机,该计算机直接在收据打印机上打印出电子邮件。
我强烈建议您从数百种更方便和安全的协议中选择一种,例如FTP、SSH XML-RPC、HTTP或任何其他协议。
如果你不能,你必须:
- 研究使用这台"小型计算机"的特定邮件服务器
- 从数百个PHP SMTP脚本中手动获取一个与SMTP交互的脚本,并使用它代替mail()。
- 研究它的返回值,并检查它们与您的发送代码
也许,您可以尝试在电子邮件中嵌入1px的图像,并将其路径指向PHP脚本,该脚本应该跟踪打开电子邮件(这意味着成功交付)并交付1px空白PNG。你可以在网上找到有关READTAG的信息。
首先使用PHPMailer类并以某种方式连接到SMTP服务器。也许您可以访问连接打印机的同一SMTP。并将header()函数移到mail()函数之后。
编辑:这里是关于重定向的文章。
检查电子邮件是否已发送的最基本方法是:
<?php
$headers = "From: www.testsite.dk'r'n";
$headers.= "Content-Type: text/plain; charset=iso-8859-1'r'n";
$headers.= "Content-Transfer-Encoding: 8bit";
$body = "$name_field'nTel. $phone_field'n$email_field 'nVil gerne bestille følgende:$menucard_to'nMed følgende ændringer'n $message";
if(mail($to,$subject,$body,$headers))
{
header("Location: $redirect_field");
echo'
<script>
<!--
window.location= "kvittering.php"
//-->
</script>';
}
else
{
echo'Error...';
}
?>