Перенос PHP файла в корень DSM и доступ к нему в DSM 7.1
Загружаем для примера, архив формы отправки писем по ссылке внизу страницы. Распаковываем архив в корень сайта (папка www на Synology NAS)
С помощью команды include из файла send.php выносим необходимые скрыть подальше данные в отдельный файл:
в примере создан пустой PHP файл со скромным именем strike (strike.php)…
<?php // Файлы phpmailer require 'phpmailer/PHPMailer.php'; require 'phpmailer/SMTP.php'; require 'phpmailer/Exception.php'; // Переменные, которые отправляет пользователь $name = $_POST['name']; $email = $_POST['email']; $texta = $_POST['texta']; $file = $_FILES['file']; // Формирование самого письма $title = "Заголовок письма"; $body = " <h2>Новое письмо</h2> <b>Имя:</b> $name<br> <b>Почта:</b> $email<br><br> <b>Сообщение:</b><br>$texta "; include '../strike.php'; ?>
В файле strike.php записываем выносимые данные:
// Валидация почты if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // Настройки PHPMailer $mail = new PHPMailer\PHPMailer\PHPMailer(); try { $mail->isSMTP(); $mail->CharSet = "UTF-8"; $mail->SMTPAuth = true; //$mail->SMTPDebug = 2; $mail->Debugoutput = function($str, $level) {$GLOBALS['status'][] = $str;}; // Настройки вашей почты $mail->Host = 'smtp.gmail.com'; // SMTP сервера вашей почты $mail->Username = 'your_login@gmail.com'; // Логин на почте $mail->Password = 'password'; // 16-значный пароль приложения, настроенный в учетной записи google $mail->SMTPSecure = 'tls'; $mail->Port = 587; // Адрес самой почты и имя отправителя $mail->setFrom('your_login@gmail.com', 'your_login'); // Получатель письма $mail->addAddress('youremail@gmail.com'); // $mail->addAddress('youremail@gmail.com'); // Ещё один, если нужен // Прикрипление файлов к письму if (!empty($file['name'][0])) { for ($ct = 0; $ct < count($file['tmp_name']); $ct++) { $uploadfile = tempnam(sys_get_temp_dir(), sha1($file['name'][$ct])); $filename = $file['name'][$ct]; if (move_uploaded_file($file['tmp_name'][$ct], $uploadfile)) { $mail->addAttachment($uploadfile, $filename); $rfile[] = "Файл $filename прикреплён"; } else { $rfile[] = "Не удалось прикрепить файл $filename"; } } } // Отправка сообщения $mail->isHTML(true); $mail->Subject = $title; $mail->Body = $body; // Проверяем отравленность сообщения if ($mail->send()) {$result = "success";} else {$result = "error";} } catch (Exception $e) { $result = "error"; $status = "Сообщение не было отправлено. Причина ошибки: {$mail->ErrorInfo}"; } } else { $result = "email"; } // Отображение результата echo json_encode(["result" => $result, "resultfile" => $rfile, "status" => $status]);
Сохраняем файл strike.php и кладем его в папку к примеру «music» на DSM Synology NAS
Подключаемся к нашему Synology NAS через программу Putty
задаем себе права суперпользователя
sudo -i
и подтверждаем паролем администратора DSM
переходим в директорию куда сохранили файл strike.php (в примере директория music)
cd /volume1/music
копируем файл strike.php командой cp -a в директорию (в примере директория volume1)
cp -a strike.php /volume1/
проверяем копирование командой ls
ls
переходим на страницу сайта, заполняем данные и проверяем работоспособность формы отправки писем
заходим в почту и радуемся результату
Обсуждение