function sendEmail($emailTo, $emailSubject, $emailBody, $altemailBody, SugarBean $relatedBean = null) { require_once 'modules/Emails/Email.php'; require_once 'include/SugarPHPMailer.php'; $emailObj = new Email(); $emailSettings = getPortalEmailSettings(); $mail = new SugarPHPMailer(); $mail->setMailerForSystem(); $mail->From = $emailSettings['from_address']; $mail->FromName = $emailSettings['from_name']; $mail->ClearAllRecipients(); $mail->ClearReplyTos(); $mail->Subject = from_html($emailSubject); $mail->Body = $emailBody; $mail->AltBody = $altemailBody; $mail->prepForOutbound(); $mail->AddAddress($emailTo); //now create email if (@$mail->Send()) { $emailObj->to_addrs = ''; $emailObj->type = 'archived'; $emailObj->deleted = '0'; $emailObj->name = $mail->Subject; $emailObj->description = $mail->AltBody; $emailObj->description_html = $mail->Body; $emailObj->from_addr = $mail->From; if ($relatedBean instanceof SugarBean && !empty($relatedBean->id)) { $emailObj->parent_type = $relatedBean->module_dir; $emailObj->parent_id = $relatedBean->id; } $emailObj->date_sent = TimeDate::getInstance()->nowDb(); $emailObj->modified_user_id = '1'; $emailObj->created_by = '1'; $emailObj->status = 'sent'; $emailObj->save(); } }
private function sendCreationEmail(aCase $bean, $contact) { if (!isAOPEnabled()) { return; } require_once "include/SugarPHPMailer.php"; $mailer = new SugarPHPMailer(); $admin = new Administration(); $admin->retrieveSettings(); $mailer->prepForOutbound(); $mailer->setMailerForSystem(); $email_template = new EmailTemplate(); $aop_config = $this->getAOPConfig(); $email_template = $email_template->retrieve($aop_config['case_creation_email_template_id']); if (!$aop_config['case_creation_email_template_id'] || !$email_template) { $GLOBALS['log']->warn("CaseUpdatesHook: sendCreationEmail template is empty"); return false; } $emailSettings = getPortalEmailSettings(); $text = $this->populateTemplate($email_template, $bean, $contact); $mailer->Subject = $text['subject']; $mailer->Body = $text['body']; $mailer->IsHTML(true); $mailer->AltBody = $text['body_alt']; $mailer->From = $emailSettings['from_address']; $mailer->FromName = $emailSettings['from_name']; $email = $contact->emailAddress->getPrimaryAddress($contact); if (empty($email) && !empty($contact->email1)) { $email = $contact->email1; } $mailer->AddAddress($email); if (!$mailer->Send()) { $GLOBALS['log']->info("CaseUpdatesHook: Could not send email: " . $mailer->ErrorInfo); return false; } else { $this->logEmail($email, $mailer, $bean->id); return true; } }
private function sendEmail($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(); $GLOBALS['log']->info("AOPCaseUpdates: sendEmail email portal settings are " . print_r($emailSettings, true)); $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']; foreach ($emails as $email) { $mailer->AddAddress($email); } if ($mailer->Send()) { require_once 'modules/Emails/Email.php'; $emailObj = new Email(); $emailObj->to_addrs = implode(",", $emails); $emailObj->type = 'out'; $emailObj->deleted = '0'; $emailObj->name = $mailer->Subject; $emailObj->description = $mailer->AltBody; $emailObj->description_html = $mailer->Body; $emailObj->from_addr = $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(); } else { $GLOBALS['log']->info("AOPCaseUpdates: Could not send email: " . $mailer->ErrorInfo); return false; } return true; }