function fn_restore_mailer() { fn_override_mailer(true); }
foreach ((array) Registry::get('languages') as $lang_code => $v) { $n[$lang_code] = fn_get_newsletter_data($newsletter_id, $lang_code); list($n[$lang_code]['body_txt'], $n[$lang_code]['body_html']) = fn_rewrite_links($n[$lang_code]['body_txt'], $n[$lang_code]['body_html'], $newsletter_id, $n[$lang_code]['campaign_id']); } $newsletter_data[] = $n; } foreach (array_splice($data['recipients'], 0, Registry::get('addons.news_and_emails.newsletters_per_pass')) as $subscriber) { foreach ($newsletter_data as $newsletter) { if ($subscriber['format'] == NEWSLETTER_FORMAT_TXT || empty($newsletter[$subscriber['lang_code']]['body_html']) && !empty($subscriber['users_list']) && $subscriber['users_list'] == 'Y') { $body = fn_render_newsletter($newsletter[$subscriber['lang_code']]['body_txt'], $subscriber); $subscriber['format'] = NEWSLETTER_FORMAT_TXT; } else { $body = fn_render_newsletter($newsletter[$subscriber['lang_code']]['body_html'], $subscriber); } fn_echo(str_replace('[email]', $subscriber['email'], fn_get_lang_var('sending_email_to')) . '<br />'); fn_override_mailer(); if (!empty($newsletter[$subscriber['lang_code']]['newsletter_multiple'])) { $subjects = explode("\n", $newsletter[$subscriber['lang_code']]['newsletter_multiple']); $newsletter[$subscriber['lang_code']]['newsletter'] = trim($subjects[rand(0, count($subjects) - 1)]); } fn_send_newsletter($subscriber['email'], $subscriber, $newsletter[$subscriber['lang_code']]['newsletter'], $body, array(), $subscriber['lang_code'], $subscriber['reply_to'], $subscriber['format'] == NEWSLETTER_FORMAT_HTML); fn_restore_mailer(); } } if (!empty($data['recipients'])) { fn_put_contents(DIR_COMPILED . $_REQUEST['cache_file'], serialize($data)); return array(CONTROLLER_STATUS_OK, "newsletters.batch_send?cache_file=" . $_REQUEST['cache_file']); } else { fn_rm(DIR_COMPILED . $_REQUEST['cache_file']); fn_set_notification('N', fn_get_lang_var('notice'), fn_get_lang_var('text_newsletter_sent')); $suffix = sizeof($data['send_ids']) == 1 ? ".update?newsletter_id=" . array_pop($data['send_ids']) : '.manage';