Отправить форму PHP через SMTP

125
11

Я нашел несколько похожих вопросов на мой запрос, но ни один из них не полностью соответствовал моей ситуации.

У меня была базовая настройка PHP mail() для использования в контактной форме на моем веб-сайте, но оказалось, что она заблокирована на моем хост-сервере, чтобы избежать спама/злоупотреблений.

Веб-хостинг рекомендует использовать SMTP в качестве обходного пути, но учебник, на который они ссылаются, кажется, не дает мне работающего решения!

Это мой HTML:

<form action="php/mail.php" method="POST">
<p class="form-field-title">Name</p>
<input class="contact-field focus-hide" type="text" id="name" name="name" required autocomplete="off">
<p class="form-field-title">Email Address</p>
<input class="contact-field focus-hide" type="email" id="email" name="email" required autocomplete="off">
<p class="form-field-title">Phone</p>
<input class="contact-field focus-hide" type="text" id="number" name="number" autocomplete="off">
<p class="form-field-title">Message</p>
<textarea class="contact-field focus-hide" id="message" name="message" data-gramm_editor="false" required autocomplete="off"></textarea>
<input class="contact-button" type="submit" value="Send Message">
</form>

И это мой оригинальный (не SMTP) код mail.php:

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];

$formcontent="Name: $name \nEmail: $email \nPhone Number: $number \nMessage: $message";
$recipient = "email@email.com";
$subject = "Website Contact Form Enquiry";
$mailheader = "From: $email \r\n";

mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

header('Location: ../thanks.html');
exit();
?>

У меня есть данные сервера электронной почты для моего веб-хостинга, но ни одно из найденных SMTP-решений не работает для меня!

Кто-нибудь может мне помочь? Я видел несколько вещей об использовании PEAR, но их веб-сайт не работает...?

Спасибо!

спросил(а) 2021-01-25T23:39:55+03:00 5 месяцев назад
1
Решение
77

Если ваша форма находится в электронном письме, я думаю, что вы не можете публиковать данные (возможно, я ошибаюсь). Но вы можете отправить его в свой скрипт с помощью метода get.

<form action="php/mail.php" method="GET">
</form>

Затем обновите ваш php:

<?php
$name = $_GET['name'];
$email = $_GET['email'];
$number = $_GET['number'];
$message = $_GET['message'];

$formcontent="Name: $name \nEmail: $email \nPhone Number: $number \nMessage: $message";
$recipient = "email@email.com";
$subject = "Website Contact Form Enquiry";
$mailheader = "From: $email \r\n";

mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

header('Location: ../thanks.html');
exit();
?>

Это должно сделать работу.

ответил(а) 2021-01-25T23:39:55+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема