NotifySend.php
[Pman.Core] / NotifySend.php
index e32aa7a..4851828 100644 (file)
@@ -396,10 +396,32 @@ class Pman_Core_NotifySend extends Pman
                             continue;
                         }
                         
+                        // what's the minimum timespan.. - if we have 60/hour.. that's 1 every minute.
+                        // if it's newer that '1' minute...
+                        // then shunt it..
+                        
+                        $seconds = floor((60 * 60) / $settings['rate']);
+                        
+                        $core_notify = DB_DataObject::factory($this->table);
+                        $core_notify->domain_id = $core_domain->id;
+                        $core_notify->whereAdd("
+                            sent >= NOW() - INTERVAL $seconds SECONDS
+                        ");
+                        
+                        if($core_notify->count()){
+                            $old = clone($w);
+                            $w->act_when = date("Y-m-d H:i:s", time() + $seconds);
+                            $w->update($old);
+                            $this->errorHandler(date('Y-m-d h:i:s ') . " Too many emails sent by {$dom}");
+                        }
+                        
+                        // that make's this test obsolete...
+                        /*
+                        
                         $core_notify = DB_DataObject::factory($this->table);
                         $core_notify->domain_id = $core_domain->id;
                         $core_notify->whereAdd("
-                            sent >= NOW - INTERVAL 1 HOUR
+                            sent >= NOW() - INTERVAL 1 HOUR
                         ");
                         
                         if($core_notify->count() >= $settings['rate']){
@@ -408,6 +430,9 @@ class Pman_Core_NotifySend extends Pman
                             $w->update($old);
                             $this->errorHandler(date('Y-m-d h:i:s ') . " Too many emails sent by {$dom}");
                         }
+                        */
+                        
+                        
                         
                         $mailer->host = $server;
                         $username = $settings['username'];
@@ -429,7 +454,9 @@ class Pman_Core_NotifySend extends Pman
             if ($res === true) {
                 // success....
                 
-                $ev = $this->addEvent('NOTIFYSENT', $w, "{$w->to_email} - {$email['headers']['Subject']}");
+                $successEventName = (empty($email['successEventName'])) ? 'NOTIFYSENT' : $email['successEventName'];
+                
+                $ev = $this->addEvent($successEventName, $w, "{$w->to_email} - {$email['headers']['Subject']}");
                 
                 $ev->writeEventLog($this->debug_str);