просто пытаюсь выяснить, почему мой код не работает. Конечно, я заменил почтовый адрес своим действительным адресом электронной почты. У тебя есть подсказка?
Форма, кажется, работает, но проблема в том, что я не получаю никаких писем в свой почтовый ящик.
Это 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!";
}
проверьте, что отвечает реальная почтовая команда:
echo mail ($ to, $ subject, $ message, $ headers);
проверять спам, если письмо получено, вы должны использовать фактический адрес, с которого было отправлено письмо
Вы случайно отправляете тесты по электронной почте на учетную запись службы Gmail?
Если в вашем домене «from» есть запись SPF, а машина, с которой вы отправляете электронную почту, не является одним из назначенных IP-адресов в записи MX домена, ваши электронные письма будут отклонены.
Если вы отправляете из окна Linux, проверьте свои почтовые журналы (/ var / log / maillog)
Вы можете распечатать все переменные, проверить всю переменную, оставить не ноль. Попробуйте еще раз. Если вы столкнулись с этой проблемой, вы можете искать больше источников, таких как SMTP.
Ваш ответ
Изменить это
<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
}
попробуй это
Первая смена
<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 почта, которая будет быстрее и точнее