/** * Send email * @param $recipient * @param $sender * @param $email_template * @param $replace_holders * @param $cc_email * @param $cc_subject * @param $debug */ function send_email($recipient, $sender, $email_template, $replace_holders = array(), $lang = '', $cc_email = '', $cc_subject = '', $debug = false) { global $objSettings; if ($lang == '') { $lang = Application::Get('lang'); $lang_dir = Application::Get('lang_dir'); } else { $lang_dir = Languages::Get($lang, 'lang_dir'); } $objEmailTemplates = new EmailTemplates(); $email_info = $objEmailTemplates->GetTemplate($email_template, $lang); $arr_constants = array(); $arr_constants_all = array('{FIRST NAME}', '{LAST NAME}', '{USER NAME}', '{USER PASSWORD}', '{USER EMAIL}', '{REGISTRATION CODE}', '{BASE URL}', '{WEB SITE}', '{YEAR}', '{EVENT}'); $arr_values = array(); foreach ($replace_holders as $key => $val) { $arr_constants[] = $key; $arr_values[] = $val; } // add the rest of holders foreach ($arr_constants_all as $key) { if (!in_array($key, $arr_constants)) { $arr_constants[] = $key; $arr_values[] = ''; } } $subject = str_ireplace($arr_constants, $arr_values, $email_info['template_subject']); if ($cc_email == '' && $cc_subject != '') { $subject = $cc_subject; } $body = '<div style=direction:' . $lang_dir . '>'; $body .= str_ireplace($arr_constants, $arr_values, $email_info['template_content']); $body .= '</div>'; if ($objSettings->GetParameter('mailer') == 'smtp') { $mail = PHPMailer::Instance(); $mail->IsSMTP(); // telling the class to use SMTP $mail->SMTPDebug = 0; // enables SMTP debug information (for testing) // 1 = errors and messages // 2 = messages only $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = 'ssl'; // sets the prefix to the server $mail->Host = $objSettings->GetParameter('smtp_host'); $mail->Port = $objSettings->GetParameter('smtp_port'); $mail->Username = $objSettings->GetParameter('smtp_username'); $mail->Password = $objSettings->GetParameter('smtp_password'); $mail->ClearAddresses(); // clear previously added 'To' addresses $mail->ClearReplyTos(); // clear previously added 'ReplyTo' addresses $mail->SetFrom($sender); // $mail->SetFrom($mail_from, 'First Last'); $mail->AddReplyTo($sender); // $mail->AddReplyTo($mail_to, 'First Last'); $recipients = explode(',', $recipient); foreach ($recipients as $key) { $mail->AddAddress($key); // $mail->AddAddress($mail_to, 'John Doe'); } $mail->Subject = $subject; $mail->AltBody = strip_tags($body); $mail->MsgHTML(nl2br($body)); $result = $mail->Send(); if ($cc_email != '') { $mail->ClearAddresses(); // clear previously added 'To' addresses $mail->ClearReplyTos(); // clear previously added 'ReplyTo' addresses $mail->AddAddress($cc_email); // $mail->AddAddress($mail_to, 'John Doe'); $mail->Subject = $cc_subject != '' ? $cc_subject : $subject; $result = $mail->Send(); } } else { $text_version = strip_tags($body); $html_version = nl2br($body); $objEmail = new Email($recipient, $sender, $subject); $objEmail->textOnly = false; $objEmail->content = $html_version; $result = $objEmail->Send(); if ($cc_email != '') { if ($cc_subject != '') { $subject = $cc_subject; } $objEmail = new Email($cc_email, $sender, $subject); $objEmail->textOnly = false; $objEmail->content = $html_version; $result = $objEmail->Send(); } } if ($debug) { echo 'To: ' . $recipient . ' <br>From: ' . $sender . ' <br>Subject: ' . $subject . ' <br>' . $body; if ($cc_email != '') { echo '<br>--------<br>To: ' . $cc_email . ' <br>From: ' . $sender . ' <br>'; } exit; } return $result; }