|
@@ -3,7 +3,7 @@
|
|
|
require_once(PATH_PHP.'database.php');
|
|
|
require_once(PATH_PHP.'security.php');
|
|
|
require_once(PATH_PHP.'user.php');
|
|
|
- function sendMail($template,$subject,$to=null,$from=null,$context=Array()){
|
|
|
+ function sendMail($template,$subject,$to=null,$from=null,$context=array()){
|
|
|
if(is_null($to)){
|
|
|
$to = get('email');
|
|
|
}
|
|
@@ -11,10 +11,32 @@
|
|
|
$from = get('email');
|
|
|
}
|
|
|
if(file_exists(PATH_DATA."/emails/{$template}.template")){
|
|
|
- $message = vsprintf(file_get_contents(PATH_DATA."/emails/{$template}.template"),$context);
|
|
|
+ $message = vnsprintf(file_get_contents(PATH_DATA."/emails/{$template}.template"),$context);
|
|
|
return @mail($to,$subject,$message,"From: {$from}\r\nMIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\n");
|
|
|
}else{
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+ function sendMailAll($template,$subject,$context=array()){
|
|
|
+ if($res = query("SELECT id FROM `users`")){
|
|
|
+ while($user = $res->fetch_assoc()){
|
|
|
+ $userobj = userObj((int)$user['id']);
|
|
|
+ foreach($userobj as $k => $val){
|
|
|
+ $context['user'.$k] = $val;
|
|
|
+ }
|
|
|
+ query("INSERT INTO `emails` (to_id,subject,template,context) VALUES (%d,'%s','%s','%s')",array($user['id'],$subject,$template,json_encode($context)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function sendFromQueue($limit = 5){
|
|
|
+ if($res = query("SELECT e.id,u.email,e.subject,e.template,e.context FROM `emails` e JOIN `users` u ON u.id = e.to_id LIMIT %d",array($limit))){
|
|
|
+ while($email = $res->fetch_assoc()){
|
|
|
+ if(sendMail($email['template'],$email['subject'],$email['email'],get('email'),json_decode($email['context'],true))){
|
|
|
+ query("DELETE FROM `emails` WHERE id = %d",array($email['id']));
|
|
|
+ }else{
|
|
|
+ query("UPDATE `emails` SET failed=1 WHERE id = %d",array($email['id']));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
?>
|