循环发送邮件,并在发送完每封邮件后输出对的响应


Send mails in a loop and output response to after every email is sent

我试图在循环中发送电子邮件,它运行良好,但它一次打印结果到页面,而不是一个接一个。

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

 //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]";
   }

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

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

电子邮件功能很少返回非常有用的值,只要发送的电子邮件至少在某种程度上是可信的。它甚至会返回true,如果电子邮件地址不存在,电子邮件被弹出,你的smtp服务器被列入黑名单。。。

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

我的建议是,放弃时尚的输出,只发送邮件。你不能确定他们是否真的达到了目标。如果$ObjMail真的返回了一个错误,那么最好登录到某个地方,这样就不会重复发送到同一个错误地址。