You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
214 lines
7.2 KiB
214 lines
7.2 KiB
4 months ago
|
<?php
|
||
|
////////////////////////////////////////////////////
|
||
|
// PHPMailer - PHP email class
|
||
|
//
|
||
|
// Class for sending email using either
|
||
|
// sendmail, PHP mail(), or SMTP. Methods are
|
||
|
// based upon the standard AspEmail(tm) classes.
|
||
|
//
|
||
|
// Copyright (C) 2001 - 2003 Brent R. Matzelle
|
||
|
//
|
||
|
// License: LGPL, see LICENSE
|
||
|
////////////////////////////////////////////////////
|
||
|
|
||
|
/**
|
||
|
* PHPMailer - PHP email transport class
|
||
|
* @package PHPMailer
|
||
|
* @author Brent R. Matzelle
|
||
|
* @copyright 2001 - 2003 Brent R. Matzelle
|
||
|
*/
|
||
|
|
||
|
|
||
|
//file modified by shankar
|
||
|
|
||
|
require("modules/Emails/class.phpmailer.php");
|
||
|
require("include/database/PearDatabase.php");
|
||
|
require("config.php");
|
||
|
|
||
|
// Get the list of activity for which reminder needs to be sent
|
||
|
|
||
|
global $adb;
|
||
|
require_once('vtiger_logger.php');
|
||
|
$vtlog = new vtiger_logger();
|
||
|
|
||
|
$vtlog->logthis(" invoked SendReminder ",'debug');
|
||
|
|
||
|
//modified query for recurring events -Jag
|
||
|
$query="select crmentity.crmid,activity.*,activity_reminder.reminder_time,activity_reminder.reminder_sent,activity_reminder.recurringid,recurringevents.recurringdate from activity inner join crmentity on crmentity.crmid=activity.activityid inner join activity_reminder on activity.activityid=activity_reminder.activity_id left outer join recurringevents on activity.activityid=recurringevents.activityid where DATE_FORMAT(activity.date_start,'%Y-%m-%d, %H:%i:%s') >= '".date('Y-m-d')."' and crmentity.crmid != 0 and activity.eventstatus = 'Planned' and activity_reminder.reminder_sent = 0 group by activity.activityid,recurringevents.recurringid ;";
|
||
|
|
||
|
$result = $adb->query($query);
|
||
|
|
||
|
if($adb->num_rows($result) >= 1)
|
||
|
{
|
||
|
while($result_set = $adb->fetch_array($result))
|
||
|
{
|
||
|
$date_start = $result_set['date_start'];
|
||
|
$time_start = $result_set['time_start'];
|
||
|
$reminder_time = $result_set['reminder_time'];
|
||
|
$curr_time = strtotime(date("Y-m-d H:i"))/60;
|
||
|
$activity_id = $result_set['activityid'];
|
||
|
$activitymode = ($result_set['activitytype'] == "Task")?"Task":"Events";
|
||
|
$to_addr='';
|
||
|
|
||
|
//code included for recurring events by jaguar starts
|
||
|
$recur_id = $result_set['recurringid'];
|
||
|
$current_date=date('Y-m-d');
|
||
|
if($recur_id == 0)
|
||
|
{
|
||
|
$date_start = $result_set['date_start'];
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$date_start = $result_set['recurringdate'];
|
||
|
}
|
||
|
//code included for recurring events by jaguar ends
|
||
|
|
||
|
$activity_time = strtotime(date("$date_start $time_start"))/60;
|
||
|
|
||
|
if (($activity_time - $curr_time) > 0 && ($activity_time - $curr_time) == $reminder_time)
|
||
|
{
|
||
|
$vtlog->logthis(" InSide REMINDER",'debug');
|
||
|
$query_user="SELECT users.email1,salesmanactivityrel.smid FROM salesmanactivityrel inner join users on users.id=salesmanactivityrel.smid where salesmanactivityrel.activityid =".$activity_id." and users.deleted=0";
|
||
|
$user_result = $adb->query($query_user);
|
||
|
if($adb->num_rows($user_result)>=1)
|
||
|
{
|
||
|
while($user_result_row = $adb->fetch_array($user_result))
|
||
|
{
|
||
|
if($user_result_row['email1']!='' || $user_result_row['email1'] !=NULL)
|
||
|
{
|
||
|
$to_addr[] = $user_result_row['email1'];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$query_cnt="SELECT contactdetails.email,cntactivityrel.contactid,crmentity.crmid FROM cntactivityrel inner join contactdetails on contactdetails.contactid=cntactivityrel.contactid inner join crmentity on crmentity.crmid=cntactivityrel.contactid where cntactivityrel.activityid =".$activity_id." and crmentity.deleted=0";
|
||
|
$cnt_result = $adb->query($query_cnt);
|
||
|
if($adb->num_rows($cnt_result)>=1)
|
||
|
{
|
||
|
while($cnt_result_row = $adb->fetch_array($cnt_result))
|
||
|
{
|
||
|
if($cnt_result_row['email']!='' || $cnt_result_row['email'] !=NULL)
|
||
|
{
|
||
|
$to_addr[] = $cnt_result_row['email'];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Set the preferred email id
|
||
|
$from ="reminders@localserver.com";
|
||
|
|
||
|
// Retriving the Subject and message from reminder table
|
||
|
$sql = "select active,notificationsubject,notificationbody from notificationscheduler where schedulednotificationid=7";
|
||
|
$result_main = $adb->query($sql);
|
||
|
|
||
|
$subject = "[Reminder:".$result_set['activitytype']." @ ".$result_set['date_start']." ".$result_set['time_start']."] ".$adb->query_result($result_main,0,'notificationsubject');
|
||
|
|
||
|
//Set the mail body/contents here
|
||
|
$contents = nl2br($adb->query_result($result_main,0,'notificationbody')) ."\n\n Kindly visit the link for more details on the activity <a href='".$site_URL."/index.php?action=DetailView&module=Activities&record=".$activity_id."&activity_mode=".$activitymode."'>Click here</a>";
|
||
|
|
||
|
if(count($to_addr) >=1)
|
||
|
{
|
||
|
send_mail($to_addr,$from,$subject,$contents,$mail_server,$mail_server_username,$mail_server_password);
|
||
|
$upd_query = "UPDATE activity_reminder SET reminder_sent=1 where activity_id=".$activity_id;
|
||
|
|
||
|
if($recur_id!=0)
|
||
|
{
|
||
|
$upd_query.=" and recurringid =".$recur_id;
|
||
|
}
|
||
|
|
||
|
$adb->query($upd_query);
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function send_mail($to,$from,$subject,$contents,$mail_server,$mail_server_username,$mail_server_password)
|
||
|
{
|
||
|
global $adb;
|
||
|
global $root_directory;
|
||
|
|
||
|
$mail = new PHPMailer();
|
||
|
|
||
|
|
||
|
$mail->Subject = $subject;
|
||
|
$mail->Body = nl2br($contents);//"This is the HTML message body <b>in bold!</b>";
|
||
|
|
||
|
|
||
|
$mail->IsSMTP(); // set mailer to use SMTP
|
||
|
//$mail->Host = "smtp1.example.com;smtp2.example.com"; // specify main and backup server
|
||
|
|
||
|
if($mail_server=='')
|
||
|
{
|
||
|
$mailserverresult=$adb->query("select * from systems where server_type='email'");
|
||
|
$mail_server=$adb->query_result($mailserverresult,0,'server');
|
||
|
$_REQUEST['server']=$mail_server;
|
||
|
}
|
||
|
|
||
|
$mail->Host = $mail_server; // specify main and backup server
|
||
|
$mail->SMTPAuth = true; // turn on SMTP authentication
|
||
|
$mail->Username = $mail_server_username ;//$smtp_username; // SMTP username
|
||
|
$mail->Password = $mail_server_password ;//$smtp_password; // SMTP password
|
||
|
$mail->From = $from;
|
||
|
$mail->FromName = $initialfrom;
|
||
|
|
||
|
foreach($to as $pos=>$addr)
|
||
|
{
|
||
|
$mail->AddAddress($addr); // name is optional
|
||
|
}
|
||
|
//$mail->AddReplyTo($from);
|
||
|
$mail->WordWrap = 50; // set word wrap to 50 characters
|
||
|
|
||
|
$mail->IsHTML(true); // set email format to HTML
|
||
|
|
||
|
$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
|
||
|
|
||
|
$flag = MailSend($mail);
|
||
|
|
||
|
}
|
||
|
|
||
|
function MailSend($mail)
|
||
|
{
|
||
|
if(!$mail->Send())
|
||
|
{
|
||
|
$msg = $mail->ErrorInfo;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function getParentMailId($returnmodule,$parentid)
|
||
|
{
|
||
|
global $adb;
|
||
|
if($returnmodule == 'Leads')
|
||
|
{
|
||
|
$tablename = 'leaddetails';
|
||
|
$idname = 'leadid';
|
||
|
}
|
||
|
if($returnmodule == 'Contacts' || $returnmodule == 'HelpDesk')
|
||
|
{
|
||
|
if($returnmodule == 'HelpDesk')
|
||
|
$parentid = $_REQUEST['contact_id'];
|
||
|
$tablename = 'contactdetails';
|
||
|
$idname = 'contactid';
|
||
|
}
|
||
|
if($parentid != '')
|
||
|
{
|
||
|
$query = 'select * from '.$tablename.' where '.$idname.' = '.$parentid;
|
||
|
$mailid = $adb->query_result($adb->query($query),0,'email');
|
||
|
}
|
||
|
if($mailid == '' && $returnmodule =='Contacts')
|
||
|
{
|
||
|
$mailid = $adb->query_result($adb->query($query),0,'otheremail');
|
||
|
if($mailid == '')
|
||
|
$mailid = $adb->query_result($adb->query($query),0,'yahooid');
|
||
|
}
|
||
|
return $mailid;
|
||
|
}
|
||
|
|
||
|
?>
|