/** * nv_sendmail() * * @param mixed $from * @param mixed $to * @param string $subject * @param string $message * @param string $files * @return */ function nv_sendmail($from, $to, $subject, $message, $files = '', $AddEmbeddedImage = false) { global $global_config, $sys_info; try { $mail = new PHPMailer\PHPMailer\PHPMailer(); $mail->SetLanguage(NV_LANG_INTERFACE); $mail->CharSet = $global_config['site_charset']; $mailer_mode = strtolower($global_config['mailer_mode']); if ($mailer_mode == 'smtp') { $mail->isSMTP(); $mail->SMTPAuth = true; $mail->Port = $global_config['smtp_port']; $mail->Host = $global_config['smtp_host']; $mail->Username = $global_config['smtp_username']; $mail->Password = $global_config['smtp_password']; $SMTPSecure = intval($global_config['smtp_ssl']); switch ($SMTPSecure) { case 1: $mail->SMTPSecure = 'ssl'; break; case 2: $mail->SMTPSecure = 'tls'; break; default: $mail->SMTPSecure = ''; } } elseif ($mailer_mode == 'sendmail') { $mail->IsSendmail(); } elseif (!in_array('mail', $sys_info['disable_functions'])) { $mail->IsMail(); } else { return false; } $message = nv_url_rewrite($message); $message = nv_change_buffer($message); $message = nv_unhtmlspecialchars($message); $mail->From = $global_config['site_email']; $mail->FromName = $global_config['site_name']; if (is_array($from)) { $mail->addReplyTo($from[1], $from[0]); } else { $mail->addReplyTo($from); } if (empty($to)) { return false; } if (!is_array($to)) { $to = array($to); } foreach ($to as $_to) { $mail->addAddress($_to); } $mail->Subject = nv_unhtmlspecialchars($subject); $mail->WordWrap = 120; $mail->Body = $message; $mail->AltBody = strip_tags($message); $mail->IsHTML(true); if ($AddEmbeddedImage) { $mail->AddEmbeddedImage(NV_ROOTDIR . '/' . $global_config['site_logo'], 'sitelogo', basename(NV_ROOTDIR . '/' . $global_config['site_logo'])); } if (!empty($files)) { $files = array_map('trim', explode(',', $files)); foreach ($files as $file) { $mail->addAttachment($file); } } if (!$mail->Send()) { trigger_error($mail->ErrorInfo, E_USER_WARNING); return false; } return true; } catch (phpmailerException $e) { trigger_error($e->errorMessage(), E_USER_WARNING); return false; } }
<?php $errors = []; if (isset($_POST['text'], $_POST['subject'], $_POST['email'])) { if (!is_string($_POST['text']) || empty($_POST['text'])) { $errors[] = '<p class="help-block">Вы не ввели текст</p>'; } if (!is_string($_POST['subject']) || empty($_POST['subject'])) { $errors[] = '<p class="help-block">Вы не ввели текст темы</p>'; } if (!is_string($_POST['email']) || empty($_POST['mail']) || !preg_match('#^[a-z-_.0-9]+@([a-z-_]+\\.)+[a-z]{2,6}$#i', $_POST['email'])) { $errors[] = '<p class="help-block">Вы ввели не корректный E-mail</p>'; } if (!count($errors)) { require_once 'vendor/autoload.php'; $class = new \PHPMailer\PHPMailer\PHPMailer(); $class->addAddress(Config::$adminMail, 'Inpost'); $class->setFrom($_POST['email'], 'Default'); $class->addReplyTo($_POST['email'], 'Default'); $class->Subject = $_POST['subject']; $class->Body = $_POST['text']; $class->send(); } }