<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
 * MaxSite CMS
 * (c) https://max-3000.com/
 * 
 */

// функция отправки письма по email
function mso_mail($email = '', $subject = '', $message = '', $from = false, $preferences = [])
{
	$arg = [
		'email' => $email,
		'subject' => $subject,
		'message' => $message,
		'from' => $from,
		'preferences' => $preferences
	];

	// если определен хук mail, то через него отправляем данные
	if (mso_hook_present('mail')) return mso_hook('mail', $arg);

	$CI = &get_instance();
	$CI->load->library('email');

	$CI->email->clear(true);

	if (isset($preferences['attach'])) // письмо с вложением?
	{
		if (is_array($preferences['attach'])) {
			// множественное вложение
			foreach ($preferences['attach'] as $attach) {
				if (trim($attach)) $CI->email->attach($attach);
			}
		} elseif (trim($preferences['attach'])) {
			$CI->email->attach($preferences['attach']);
		}
	}

	$config['wordwrap'] = isset($preferences['wordwrap']) ? $preferences['wordwrap'] : TRUE;
	$config['wrapchars'] = isset($preferences['wrapchars']) ? $preferences['wrapchars'] : 90;

	// можно отправлять письмо в html-формате
	if (isset($preferences['mailtype']) and $preferences['mailtype'])
		$config['mailtype'] = $preferences['mailtype'];

	$CI->email->initialize($config);
	$CI->email->to($email);

	// (переделка из-за ужесточения правил почтовиков)
	// $from теперь это reply-to: 
	// а from: всегда равен admin_email_server из настроек сайта
	$admin_email = mso_get_option('admin_email_server', 'general', 'admin@site.com');
	$from_name = $preferences['from_name'] ?? ''; //getinfo('name_site');

	$CI->email->from($admin_email, getinfo('name_site'));

	// если указан $from, то трактуем его как Reply-to
	if ($from) $CI->email->reply_to($from, $from_name);

	$CI->email->subject($subject);
	$CI->email->message($message);
	$CI->email->_safe_mode = true; // иначе CodeIgniter добавляет -f к mail - не будет работать в не safePHP

	$res = @$CI->email->send();

	// mail($email, $subject, $message); // проверка

	if (!$res) {
		if (isset($preferences['print_debugger']) and $preferences['print_debugger']) {
			echo $CI->email->print_debugger();
		}
	}

	$arg['res'] = $res;
	mso_hook('mail_res', $arg); // хук, если нужно отслеживать отправку почты

	return $res;
}

# end of file
