Example #1
1
 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);
 }
Example #2
0
 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;
 }
Example #3
0
 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;
                 }
             }
         }
     }
 }