3.7 KiB
3.7 KiB
Настройка форм обратной связи
Копирование PHP файлов на сервер
# Скопировать обработчики форм в корень веб-сервера
sudo cp static/send_plan.php /var/www/html/
sudo cp static/send_ask.php /var/www/html/
# Установить права
sudo chown www-data:www-data /var/www/html/send_*.php
sudo chmod 644 /var/www/html/send_*.php
Настройка email
Отредактируйте файлы и замените email получателя:
# В файле send_plan.php
sudo nano /var/www/html/send_plan.php
# Найти строку: $to = "info@sleeptrip.ru";
# Заменить на ваш email
# В файле send_ask.php
sudo nano /var/www/html/send_ask.php
# Найти строку: $to = "info@sleeptrip.ru";
# Заменить на ваш email
Настройка SMTP (через msmtp)
# Установить msmtp
sudo apt update && sudo apt install msmtp msmtp-mta
# Создать конфигурацию
sudo tee /etc/msmtprc > /dev/null <<'EOF'
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.log
# Gmail настройки (замените на ваши)
account gmail
host smtp.gmail.com
port 587
from your-email@gmail.com
user your-email@gmail.com
password your-app-password
# Установить Gmail как аккаунт по умолчанию
account default : gmail
EOF
# Установить права
sudo chmod 644 /etc/msmtprc
sudo chown root:mail /etc/msmtprc
# Создать лог файл
sudo touch /var/log/msmtp.log
sudo chown www-data:adm /var/log/msmtp.log
sudo chmod 664 /var/log/msmtp.log
# Настроить PHP для использования msmtp
echo "sendmail_path = /usr/bin/msmtp -t" | sudo tee -a /etc/php/*/apache2/php.ini
echo "sendmail_path = /usr/bin/msmtp -t" | sudo tee -a /etc/php/*/cli/php.ini
# Перезапустить Apache
sudo systemctl restart apache2
Тестирование форм
- Откройте страницы
/plan/и/ask/ - Заполните и отправьте формы
- Проверьте логи:
sudo tail -f /var/log/msmtp.log - Проверьте почту
Альтернатива: использование существующего qform.io
Если предпочитаете оставить текущие формы qform.io, можно:
- Оставить существующие формы как есть
- PHP обработчики использовать как резервный вариант
- Настроить webhook'и в qform.io для интеграции с внутренними системами
Безопасность
- PHP файлы включают базовую валидацию
- Email headers защищены от инъекций
- Логируется IP и timestamp
- Рекомендуется добавить CAPTCHA для защиты от спама
Интеграция с внутренними системами
Для интеграции с базой данных или CRM добавьте в PHP файлы:
// Пример записи в базу данных
try {
$pdo = new PDO('mysql:host=localhost;dbname=travel', $db_user, $db_pass);
$stmt = $pdo->prepare("INSERT INTO requests (name, email, type, destination, created_at) VALUES (?, ?, ?, ?, NOW())");
$stmt->execute([$name, $email, $trip_type, $destination]);
} catch (PDOException $e) {
error_log("Database error: " . $e->getMessage());
}