【发布时间】:2014-03-25 07:11:57
【问题描述】:
我有这个方法来通知“我的追随者”,这是在添加新事件后调用的。它可以工作,但是使用多于一封电子邮件会使所有过程非常缓慢,因为弹出窗口会等待所有电子邮件都已发送,然后再向用户显示已添加事件并且旋转轮将永远运行。在用户收到事件已添加的消息后,我想不出任何方法来“在幕后”进行操作。
public function notifiedFollowers($creator_id, $type, $event_id){
$query = $this->_db->prepare("SELECT * FROM followers WHERE user_id = ?");
$query->bindParam(1, $creator_id, PDO::PARAM_INT);
$query->execute();
while($row = $query->fetch(PDO::FETCH_OBJ)) {
$creator = new User($creator_id);
$creatorName = $creator->data()->name;
$user = new User($row->followers_id);
$mail = new PHPMailer();
$template = New MailFactory();
$mail->IsSMTP();
$mail->Host = "myHost";
$mail->SMTPAuth = true;
$mail->Username = "myUser";
$mail->Password = "myPassword";
$mail->IsHTML(true);
$mail->From = 'from email';
$mail->FromName = 'from name';
$mail->AddAddress($user->data()->username);
$mail->Subject = 'add subject here';
$mail->Body = $template->notifiedFollowersEmail($creatorName, $user->data()->name, $type, $event_id);
if(!$mail->send()) {
echo $mail->ErrorInfo;
die();
}
}
}
*更新******
我使用 cron 作业解决了这个问题。请检查我的答案。
【问题讨论】:
标签: php