123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- require_once(realpath(dirname(__FILE__)).'/config.php');
- 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()){
- if(is_null($to)){
- $to = get('email');
- }
- if(is_null($from)){
- $from = get('email');
- }
- if(file_exists(PATH_DATA."/emails/{$template}.template")){
- $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']));
- }
- }
- }
- }
- ?>
|