как сделать форму отправки писем на php и html
недавно начал програмировать на php.Нужно сделать форму отправки сообщений для этого кода:
<form action="send.php" method="post">
<input name="name">
   
<textarea name="message"></textarea>
<br>
<input type="submit" name="button">
</form>
Пожалуйста, помогите, пробовал много способов из интернета, ни один не получился.Кстати, сайт не залит на хостинг(может это и не важно).
Ответы (3 шт):
Если вы просто открываете html или php файл в браузере, то такое никогда не сработает. Чтоб php-код работал, кто-то должен запустить его - веб-сервер, обычно Apache или NGINX.
Советую вам установить OpenServer, у него достаточно дружелюбный интерфейс. После устаноки скопируйте в папку localhost ваши файлы, и перейдите по адресу http://localhost/ - должно работать.
Подходящая инструкция и репозиторий php скрипта https://vk-book.ru/otpravka-pisem-cherez-smtp-s-avtorizaciej-po-protokolu-ssl-na-php/ https://github.com/Ipatov/SendMailSmtpClass
Как правильно отметил @ДавидМанжула, для работы скрипта, его необходимо запустить на локальном сервере (если нет хоста)
<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 после выполнения скрипта
}