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;
     }
 }
Beispiel #3
0
 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;
 }