HTML — простой sendmail в php не работает

просто пытаюсь выяснить, почему мой код не работает. Конечно, я заменил почтовый адрес своим действительным адресом электронной почты. У тебя есть подсказка?

Форма, кажется, работает, но проблема в том, что я не получаю никаких писем в свой почтовый ящик.

Это HTML-часть:

        <form id="contact-form">

<p id="contact-form-success" class="form-success-message column-container align-center">
<strong><i class="fa fa-check-square-o"></i> Ihre Anfrage wurde verschickt!</strong><br>
Text Text
</p>
<div class="column-container formFields">
<div class="column one-half"><p><input id="contact-name" class="required" name="contact-name" type="text" placeholder="Vorname"></p>
<p><input id="contact-name-last" class="required" name="contact-name-last" type="text" placeholder="Nachname"></p>
</div>
<div class="column one-half last">
<p><input id="contact-email" class="required" name="contact-email" type="email" placeholder="E-Mail"></p>
<p><input id="contact-phone" name="contact-phone" type="tel" placeholder="Telefon (optional)"></p>
</div>
</div>
<br/>
<p class="submit formFields"><button class="form-submit button grey" type="submit">Angebot anfordern</button></p>
</form>

PHP-часть:

<?php

$email = "[email protected]";
$subject = "[Auftrag+] Angebot Anfrage";

if ( isset($_POST["contact-name"]) && isset($_POST["contact-name-last"]) && isset($_POST["contact-email"]) ) {

$name = htmlentities($_POST["contact-name"], ENT_QUOTES, "UTF-8");
$name_last = htmlentities($_POST["contact-name-last"], ENT_QUOTES, "UTF-8");
$email = htmlentities($_POST["contact-email"], ENT_QUOTES, "UTF-8");
$phone = htmlentities($_POST["contact-phone"], ENT_QUOTES, "UTF-8");
$ip = $_SERVER['REMOTE_ADDR'];
$to = $email;
$subject = $subject;
$message =
<<<HTML
Name: {$name}
Nachname: {$name_last}
Email: {$email}
Phone: {$phone}
IP: {$ip}
HTML;
$headers = "From:" . $email;
mail( $to, $subject, $message, $headers );
echo "Success";

} else {

echo "POST request does not contain necessary data!";

}

-1

Решение

  1. проверьте, что отвечает реальная почтовая команда:

    echo mail ($ to, $ subject, $ message, $ headers);

  2. проверять спам, если письмо получено, вы должны использовать фактический адрес, с которого было отправлено письмо

0

Другие решения

Вы случайно отправляете тесты по электронной почте на учетную запись службы Gmail?

Если в вашем домене «from» есть запись SPF, а машина, с которой вы отправляете электронную почту, не является одним из назначенных IP-адресов в записи MX домена, ваши электронные письма будут отклонены.

Если вы отправляете из окна Linux, проверьте свои почтовые журналы (/ var / log / maillog)

0

Вы можете распечатать все переменные, проверить всю переменную, оставить не ноль. Попробуйте еще раз. Если вы столкнулись с этой проблемой, вы можете искать больше источников, таких как SMTP.

0

Ваш ответ

Изменить это <form id="contact-form" method="post">,

К тому же

Без проверки isset($_POST["aaa"]) использование required отметить в

<input id="contact-name" class="required" name="contact-name" type="text" placeholder="Vorname" required>

и в наборе кнопки отправки name='submit'

так что если это поле пусто, кнопка отправки не является ответом. Когда он заполнен, он приходит к коду PHP.

так что вы можете легко использовать код

if(isset($_POST["submit]))
{
//Your code here
}

попробуй это

0

Первая смена

<form action="your_action_url" method="post"> Я думаю, что вы забыли добавить это

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

Я думаю, что следующие изменения помогут вам.

<?php

$subject = "[Auftrag+] Angebot Anfrage";

if ( isset($_POST["contact-name"]) && isset($_POST["contact-name-last"]) && isset($_POST["contact-email"]) ) {

$name = $_POST["contact-name"]);
$name_last = $_POST["contact-name-last"];
$email = $_POST["contact-email"];
$phone = $_POST["contact-phone"];
$ip = $_SERVER['REMOTE_ADDR'];
$to = $email;
$subject = $subject;

$message = "Name: ".$name."<br/>
Nachname: ".$name_last."<br/>
Email: ".$email."<br/>
Phone: ".$phone."<br/>
IP: ".$ip."<br/>";

$headers .= "Reply-To: The Sender <[email protected]>\r\n";
$headers .= "Return-Path: The Sender <[email protected]>\r\n";
$headers .= "From: The Sender <[email protected]>\r\n";
$headers .= "Organization: Sender Organization\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-Mailer: PHP". phpversion() ."\r\n"

mail( "[email protected]", $subject, $message, $headers );
echo "Success";

} else {

echo "POST request does not contain necessary data!";

}
?>

Если письмо все еще не получено, вы можете попробовать
SMTP почта, которая будет быстрее и точнее

0
По вопросам рекламы [email protected]