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

时间:2011-09-30 06:56:44

标签: php email

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

问题在于,即使您发送到kvittering.php页面,有时(50次中有1次)电子邮件永远不会打印。

关于我如何进行测试的任何想法,如果电子邮件是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>

4 个答案:

答案 0 :(得分:2)

  

订单被发送到一台小型计算机,该计算机直接在收件人打印机上打印出电子邮件。

强烈建议您选择数百种更方便和安全的协议之一,例如FTP,SSH XML-RPC,HTTP或任何其他协议。

如果你不能,你必须:

  • 研究特定邮件服务器这个“小电脑”
  • 获取数百个与SMTP手动交互的PHP SMTP脚本之一,并使用它而不是mail()。
  • 研究它的返回值并使用您的发送代码进行检查

答案 1 :(得分:0)

可能您可以尝试在电子邮件中嵌入1px图像并将其路径指向PHP脚本,该脚本应该跟踪打开电子邮件(这意味着成功交付)并提供1px空白PNG。您可以在网上找到有关此类READTAG的信息。 希望它会对你有所帮助。

答案 2 :(得分:0)

首先使用PHPMailer类,然后连接到SMTP服务器。也许您可以访问连接打印机的同一SMTP。并在mail()函数之后移动header()函数。

编辑:这是关于重定向的article

答案 3 :(得分:0)

检查电子邮件是否已发送的最基本方法是:

<?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...';
}
?>