发送邮件并在每封电子邮件发送后输出响应

时间:2016-08-02 05:37:58

标签: php email

我试图在循环中发送电子邮件并且它工作正常但是它将结果打印到页面中,而不是一个接一个地打印。

我想要的是,它应该为每封发送的电子邮件打印回复。这就是我到目前为止所做的:

 //foreach loop
 $Response = $ObjMail->send();
 if ($Response) {
 echo "Email Sent Successfully to $val[name] </br>";
  } else {
      echo "There was an error sending Email to $val[email]";
   }

1 个答案:

答案 0 :(得分:0)

根据您的$ObjMail,“成功发送邮件”通常等同于

  • 发送邮件服务器(即smtp服务器)接受了电子邮件或
  • 调用mail()函数(实际读取文档,特别是返回值部分)。

电子邮件功能很少返回非常有用的值,只要发送的电子邮件至少有点合理。它甚至会返回true,如果电子邮件地址不存在,电子邮件会被退回,您的smtp服务器被列入黑名单,......

您的问题的可能答案:默认情况下,您的输出几乎是即时的,除非您的本地sendmail(大多数主机上的默认设置)调用花费的时间超过几微秒,这通常不会。此外,它没有说明发送实际的邮件。 (我认为,你认为实际情况确实如此,但事实并非如此。)

我的建议是,删除时尚的输出,然后发送邮件。你无法确定他们是否真的达到了他们的目标。如果$ObjMail实际上返回错误,那么在某处记录可能是明智的,这样就不会重复发送到相同的错误地址。