Hi, I am able to send E mail to more than one user but It does not send case updates. The email contains only template and nothing valuable info inside it.
I don’t know how to get that info in that template.
This is a customization you’ve made, right? You’ll have to post full code if you want us to try and help…
Send Case Update 1 function :-
It is inside CaseUpdates Hook:-
public function sendCaseUpdate1()
{
$caseUpdate = new AOP_Case_Updates();
global $current_user, $sugar_config;
$email_template = new EmailTemplate();
if ($_REQUEST['module'] === 'Import') {
//Don't send email on import
return;
}
if (!isAOPEnabled()) {
return;
}
if ($caseUpdate->internal) {
return;
}
$signature = array();
$addDelimiter = true;
$aop_config = $sugar_config['aop'];
if ($caseUpdate->assigned_user_id) {
if ($aop_config['contact_email_template_id']) {
$email_template = $email_template->retrieve($aop_config['contact_email_template_id']);
$signature = $current_user->getDefaultSignature();
}
if ($email_template->id) {
foreach ($caseUpdate->getContacts() as $contact) {
$GLOBALS['log']->info('AOPCaseUpdates: Calling send email');
$emails="fozangill@outlook.com";
$caseUpdate->sendEmail1(
$emails,
$email_template,
$signature,
$caseUpdate->case_id,
$addDelimiter,
$contact->id
);
}
}
} else {
$emails = $caseUpdate->getEmailForUser();
if ($aop_config['user_email_template_id']) {
$email_template = $email_template->retrieve($aop_config['user_email_template_id']);
}
$addDelimiter = false;
if ($emails && $email_template) {
$GLOBALS['log']->info('AOPCaseUpdates: Calling send email');
$caseUpdate->sendEmail1(
$emails,
$email_template,
$signature,
$caseUpdate->case_id,
$addDelimiter,
$caseUpdate->contact_id
);
}
}
}
sendEmail 1 function
It is inside AOP Case Updates :-
public function sendEmail1(
$emails,
$template,
$signature = array(),
$caseId = null,
$addDelimiter = true,
$contactId = null
) {
$GLOBALS['log']->info('AOPCaseUpdates: sendEmail called');
require_once 'include/SugarPHPMailer.php';
$mailer = new SugarPHPMailer();
$admin = new Administration();
$admin->retrieveSettings();
$mailer->prepForOutbound();
$mailer->setMailerForSystem();
$signatureHTML = '';
if ($signature && array_key_exists('signature_html', $signature)) {
$signatureHTML = from_html($signature['signature_html']);
}
$signaturePlain = '';
if ($signature && array_key_exists('signature', $signature)) {
$signaturePlain = $signature['signature'];
}
$emailSettings = getPortalEmailSettings();
$text = $this->populateTemplate($template, $addDelimiter, $contactId);
$mailer->Subject = $text['subject'];
$mailer->Body = $text['body'] . $signatureHTML;
$mailer->isHTML(true);
$mailer->AltBody = $text['body_alt'] . $signaturePlain;
$mailer->From = $emailSettings['from_address'];
$mailer->FromName = $emailSettings['from_name'];
$mailer->addAddress("fozangill@outlook.com");
try {
if ($mailer->send()) {
require_once 'modules/Emails/Email.php';
$emailObj = new Email();
$emailObj->to_addrs_names = implode(',', $emails);
$emailObj->type = 'out';
$emailObj->deleted = '0';
$emailObj->name = $mailer->Subject;
$emailObj->description = $mailer->AltBody;
$emailObj->description_html = $mailer->Body;
$emailObj->from_addr_name = $mailer->From;
if ($caseId) {
$emailObj->parent_type = 'Cases';
$emailObj->parent_id = $caseId;
}
$emailObj->date_sent = TimeDate::getInstance()->nowDb();
$emailObj->modified_user_id = '1';
$emailObj->created_by = '1';
$emailObj->status = 'sent';
$emailObj->save();
return true;
}
} catch (phpmailerException $exception) {
$GLOBALS['log']->fatal('AOPCaseUpdates: sending email Failed: ' . $exception->getMessage());
}
$GLOBALS['log']->info('AOPCaseUpdates: Could not send email: ' . $mailer->ErrorInfo);
return false;
}
Logic Hook :-
$hook_array['before_save'][] = Array(10, 'Save case updates', 'modules/AOP_Case_Updates/CaseUpdatesHook.php','CaseUpdatesHook', 'sendCaseUpdate1');