static function queue($params) { $db = new Database(); # MailQueue class can be created $script = "INSERT INTO MailQueue SET `type` = :type,\n senderName = :senderName,\n senderEmail = :senderEmail,\n receiverName = :receiverName,\n receiverEmail = :receiverEmail,\n cc = :cc,\n bcc = :bcc,\n subject = :subject,\n body = :body"; return $db->executeUpdate($script, $params); }
public function save() { $db = new Database(); $update = isset($this->id); $id = $update ? $this->id : 0; $vars = get_object_vars($this); if ($vars) { $script = $update ? 'UPDATE User SET ' : 'INSERT INTO User SET '; $sp = constructScriptAndParams($vars, $script, $this->fillables); if ($update) { $sp['script'] .= " WHERE id = {$id}"; } else { $this->createPasswordDigest(); $sp['params']['id'] = $id; $sp['params']['passwordDigest'] = $this->passwordDigest; $sp['script'] .= " ,passwordDigest = :passwordDigest "; } $result = $db->executeUpdate($sp['script'], $sp['params']); if ($result) { if ($update) { return $this->findOne($this->id); } else { return $this->findOne($db->lastInsertId); } } } return null; }
static function perform() { $db = new Database(); $rows = $db->executeQuery("SELECT * FROM MailQueue WHERE sent = 0"); if (is_array($rows) && count($rows) > 0) { foreach ($rows as $data) { $result = Emailer::send([$data['senderEmail'] => $data['senderName']], [$data['receiverEmail']], $data['subject'], $data['body']); if ($result) { $params = ['id' => $data['id'], 'sent' => 1, 'now' => date('Y-m-d H:i:s')]; $r = $db->executeUpdate("UPDATE MailQueue SET sentAt=:now, sent=:sent WHERE id = :id", $params); if ($r) { print "[{$data['subject']}] Email sent to: " . $data['receiverEmail'] . PHP_EOL; } else { print "[{$data['subject']}] Failed to send email for: " . $data['receiverEmail'] . PHP_EOL; } } } } }