как сделать форму отправки писем на php и html

недавно начал програмировать на php.Нужно сделать форму отправки сообщений для этого кода:

<form action="send.php" method="post">
<input name="name">
&nbsp&nbsp&nbsp
<textarea name="message"></textarea>
<br>
<input type="submit" name="button">
</form>

Пожалуйста, помогите, пробовал много способов из интернета, ни один не получился.Кстати, сайт не залит на хостинг(может это и не важно).


Ответы (3 шт):

Автор решения: Давид Манжула

Если вы просто открываете html или php файл в браузере, то такое никогда не сработает. Чтоб php-код работал, кто-то должен запустить его - веб-сервер, обычно Apache или NGINX.

Советую вам установить OpenServer, у него достаточно дружелюбный интерфейс. После устаноки скопируйте в папку localhost ваши файлы, и перейдите по адресу http://localhost/ - должно работать.

→ Ссылка
Автор решения: MidNightElf

Как правильно отметил @ДавидМанжула, для работы скрипта, его необходимо запустить на локальном сервере (если нет хоста)

<form method="post" action="send.php" enctype="multipart/form-data">
        <div>
            <label>Name: </label>
            <input type="text" name="name" c/>
        </div>
        <div>
            <label>Message: </label>
            <textarea type="text" name="message"/></textarea>
        </div>
        <div align="center">
            <input type="submit" name="submit" value="Отправить форму"/>
        </div>
</form>

Отправка письма на примере PHP библиотеки PHPMailer

<?php 
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$message = '';
$mail = new PHPMailer;
$mail->CharSet = "utf-8";

try 
{
    if(isset($_POST["submit"]))
    {       

        $message = 'Name: ' . $_POST["name"] . ', Message: ' . $_POST["message"]; // Текст письма
        // SMTP данные отличаются у разных почт. В данном случае используется @mail.ru. Посмотреть SMTP данные почты просто загуглив
        $mail->IsSMTP();
        $mail->Host = 'smtp.mail.ru';
        $mail->Port = '465';
        $mail->SMTPAuth = true;
        $mail->SMTPSecure = 'ssl';

        $mail->Username = '[email protected]'; // почта с которой отправляется письмо
        $mail->Password = 'passwordFromMail'; // пароль от почты с которого отправляется письмо
        $mail->From = '[email protected]'; // почта с которой отправляется письмо
        $mail->AddAddress("[email protected]"); // почта на которое отправляется письмо
        // $mail->AddAddress(""); Их может
        // $mail->AddAddress(""); быть
        // $mail->AddAddress(""); много
        $mail->Subject = 'Данные с формы';
        $mail->Body = $message; // текст письма из переменной $message
        if($mail->Send()) {
            // Если форма успешно отправлена
        }
        else {
            // Если возникла ошибка
        }
    }
} 
catch (Exception $error) {
    // Если возникло исключение при отправке запроса
    echo 'Произошло исключение при отправке запроса: ' . $mail->ErrorInfo;

}
finally {
    header('location: index.php'); // редирект на index.php после выполнения скрипта
}

Посмотреть smpt домена @mail.ru

→ Ссылка