Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何测试是否发送(或接收)电子邮件?_Php_Email - Fatal编程技术网

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

Php 如何测试是否发送(或接收)电子邮件?,php,email,Php,Email,下面是一个网站的一部分,订单被发送到一台小型计算机,该计算机直接在接收打印机上打印电子邮件 问题是,有时(50次中有1次)电子邮件从未打印过,即使您被发送到kvittering.php页面 如果电子邮件100%发送,我可以做一个测试,只将你转发到kvittering.php,你有什么想法吗? 然后,我可以消除网站作为一个错误源,并把重点放在打印机上。 欢迎任何建议 <?php $headers = "From: www.testsite.dk \r\n"; $headers.= "Cont

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

问题是,有时(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>

也许,您可以尝试在电子邮件中嵌入1px图像,并将其路径指向PHP脚本,该脚本应跟踪打开电子邮件(这意味着成功发送)并发送1px空白PNG。你可以在网上找到关于这种READTAG的信息。 希望它能帮助你

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

我建议您从数百种更方便、更安全的协议中选择一种,例如FTP、SSH XML-RPC、HTTP或任何其他协议

如果你不能,你必须:

  • 研究为这台“小型计算机”服务的特定邮件服务器
  • 获取数百个与SMTP手动交互的PHP SMTP脚本中的一个,并使用它代替mail()
  • 研究它的返回值并用发送代码检查它们
首先使用类,然后以某种方式连接到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...';
}
?>


我建议将
header()
调用移动到
mail()
调用下方……您建议,为了确保我收到邮件,我仍然使用mail()发送邮件,但要通过安全协议,如fx。https?(不知道如何使用ftp或ssh从网站服务器发送邮件)我可以相对确定邮件是否已发送,并因此关注接收邮件的计算机?或者是我的误解。不,我不是说ssl,而是指某种容错协议