public function email($params, $formId, $data, $fields) { $mailer = new \PHPMailer\PHPMailer\PHPMailer(); $mailer->isSMTP(); $mailer->Host = $params['smtpServer']; $mailer->Port = $params['smtpPort']; $mailer->SMTPSecure = $params['ssl']; $mailer->SMTPAuth = true; $mailer->Username = $params['user']; $mailer->Password = $params['password']; $mailer->Subject = $params['subject']; $mailer->CharSet = "UTF-8"; $mailer->setFrom($params['from']); foreach ($params['to'] as $address) { $mailer->addAddress($address); } $msg = '<p>Message from form: ' . $formId . '</p>'; foreach ($data as $k => $v) { $label = !empty($fields[$k]['label']) ? $fields[$k]['label'] : $k; $msg .= '<p><b>' . $label . '</b>: ' . $v . '</p>'; } $mailer->msgHTML($msg); $mailer->send(); }
/** * 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; } }
include_once $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/Model.php'; //получить текущие дату и время date_default_timezone_set('Europe/Moscow'); $cur_day = date('Y-m-d'); $cur_time = date('H') . ':00:00'; //получаем выгрузку из БД: массив с данными, соотвествующими текущей дате и времени $mod = new Model(); $letters = $mod->getarray('date', $cur_day, 'time', $cur_time); //отправляем письма каждому адресату в массиве foreach ($letters as $letter) { $email = $letter['email']; $mes = $letter['mes']; $subject = 'Сообщение из прошлого'; $mailer = new PHPMailer\PHPMailer\PHPMailer(); $mailer->IsSMTP(); $mailer->Host = "smtp.mail.ru"; //todo insert your host $mailer->SMTPAuth = true; $mailer->SMTPSecure = "ssl"; $mailer->Port = 465; $mailer->CharSet = 'UTF-8'; $mailer->Username = ""; //todo insert your e-mail address $mailer->Password = ""; // todo insert your password $mailer->SetFrom('mail@', 'Робот'); //todo insert your data $mailer->Subject = $subject; $mailer->msgHTML($mes);
<?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(); } }