Как подключить форму, чтобы данные приходили на на email почту?

0
 <div class="col-lg-4">
              <div class="panel panel-info">
                <div class="panel-heading"><div class="sidebar-header">Получить консультацию</div></div>
                <div class="panel-body">
                 <form role="form">
                    <div class="form-group">
                      <input type="text"  class="form-control input-lg" placeholder="Ваше имя">
                    </div>
                    <div class="form-group">
                      <input type="email" class="form-control input-lg" placeholder="Почта">
                    </div>
                    <div class="form-group">
                      <textarea class="text" placeholder="Описание проблемы"></textarea>
                    </div>

                    <button type="submit" class="btn btn-warning btn-lg btn-block">Записаться</button>
                   </form>
               </div>
              </div>  
            </div>      

Всем здравствуйте. Опять я со своими глупыми вопросами. Я сверстал сайт на Бутстрап 3. И не могу понять как подключить формы ввода , чтобы имя и телефон клиента приходили на Email. Нужно ли делать отдельный файл PhP?. может это легко как в Курсе PhP ,но у меня пока не получается.

bootstrap

5 ответов

1

На php несколько строчек кода, если на хостинге, где будет расположен сайт, позволяет это сделать. Этот способ не будет на локальном сайте отправлять почту.

или можно использовать отправку почты через smtp Gmail почты или любой другой, кода там на несколько строчек больше, но эти строчки - это реквизиты подключения к почте.

Но проще и наверное лучше использовать для сайте Фреймворк, где настройки почты, базы данных в одном месте находятся.

Позже примеры скину

2
Все-таки нужно файл form.php создать. но как присоединить к index.html основному файлу. ?

Нужно прописать в форме, что данные передаются через post и в качестве action указать скрипт на php, который получит post данные из формы и с ними можно уже делать, что угодно: Отправлять почту, записывать в базу данных, трансформировать данные и прочее. 

Вот тут есть про получение данных post и get из формы html и связывания html формы с php языком:

https://fructcode.com/ru/courses/php-and-mysql/video-form-get-and-post/

Ну и как обещал примеры:

1. Если сайт располагается на хостинге (на том же timeweb.ru который в курсе показывается):

<?php
$to      = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = array(
    'From' => '[email protected]',
    'Reply-To' => '[email protected]',
    'X-Mailer' => 'PHP/' . phpversion()
);

mail($to, $subject, $message, $headers);
?>

Пример с документации по php:

https://www.php.net/manual/en/function.mail.php

Этот способ не будет работать с локального сайта (xampp), только на реальном хостинге с поддержкой функции mail.

2. Работает и на локальном сайте (xampp) и на реальном хостинге для сайта:

Устанавливается composer (тут можно посмотреть):

https://fructcode.com/ru/courses/yii2/how-to-install-yii2-framework-with-composer-part1/

Потом с помощью composer устанавливается библиотека PHPMailer:

composer require phpmailer/phpmailer

И потом скрипт такой:

require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true);
// Настройки
$mail->SMTPDebug = SMTP::DEBUG_SERVER;                      // Включение логов работы
$mail->isSMTP();                                            // Отправка использует SMTP 
$mail->Host       = 'smtp.gmail.com';                    // Задается smtp от gmail
$mail->SMTPAuth   = true;                                   // Включается SMTP аутентификация
$mail->Username   = '[email protected]';                     // Ящик почты из gmail
$mail->Password   = 'YOUREMAILPASSWORD';                               // Пароль от почты gmail
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // TLS шифровка
$mail->Port       = 587;                                    // Порт smtp

// Отравитель и получатель
$mail->setFrom('[email protected]', 'Mailer');
$mail->addAddress('TOADDRESS');  // адрес

// Тело письма
$mail->isHTML(true);                                  // Отправить письмо в формате html (поддерживаются html теги)
$mail->Subject = 'Тема письма';
$mail->Body    = 'Тест письма с html тегами';

// Отправка почты
$mail->send();

Лучше создать новую почту gmail (нужно из интерфейса gmail отправить хотя бы одно письмо, а то будет ошибка при отправки через скрипт).

0

Спасибо за ответ, Честно говоря не совсем понял если пример скинете .

Все-таки нужно файл form.php создать. но как присоединить к index.html основному файлу. ?

0

Здравствуйте. Спасибо за такой развернутый ответ. Тут есть вся исчерпывающая информация . Буду разбираться. Что то тяжело мне  дается. Это по сути есть все в курсе. Невнимательность моя.

0

И все же ничего не получилось думаю на хостинге подскажут непосредственно.

Вся задержка из-за этой формы . 

Sign up or Log in to write an answer