如何测试电子邮件是否发送(或接收)


How to test if email is send (or received)?

下面是一个网站的一部分,订单被发送到一台小型计算机,该计算机直接在收据打印机上打印出电子邮件。

问题是有时(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...';
}
?>