Как исправить ошибки контактной формы PHP: HTML_MIME_NO_HTML_TAG, MIME_HTML_ONLY, MISSING_DATE - PullRequest
1 голос
/ 06 апреля 2019

Я не очень хорош в PHP, поэтому, пожалуйста, будьте терпеливы и понятны. Письма из моей контактной формы всегда идут в папку со спамом. Я запустил тест на этом сайте , и он говорит мне, что

  1. в моем сообщении только для HTML нет тега HTML (HTML_MIME_NO_HTML_TAG)

  2. мое сообщение содержит только части текста / html MIME, и я должен добавить текст / обычный текст (MIME_HTML_ONLY)

  3. в моем сообщении отсутствует заголовок: дата (MISSING_DATE)

  4. у них нет почтового сервера (MX-запись) за моим доменным именем, и я должен опубликовать DNS-запись (тип MX) для моего доменного имени

Я знаю, что некоторые из этих вопросов задавались ранее, но я не знаю, что делать, и думаю, что мне нужна личная помощь. Спасибо!

РЕДАКТИРОВАТЬ: У меня есть еще две проблемы:

  1. запись SPF отсутствует, и я должен добавить свое доменное имя в файл зоны DNS

  2. сообщение не подписано DKIM

Мой HTML:

<div class="contact-form">

        <form id="contact-form" method="post" action="contact-form-handler.php">
            <input name="name" type="text" class="form-control" placeholder="Your Name" required>
            <br>
            <input name="email" type="email" class="form-control" placeholder="Your Email">
            <br>

            <textarea name="message" class="form-control" placeholder="Message" rows="40" required></textarea><br>

            <input type="submit" class="form-control" value="SEND MESSAGE">

        </form>
    </div>

Мой PHP:

<?php 
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: mywebsite.com'; 
$to = 'someone@something.net'; 
$subject = 'Subject-line';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html\r\n";
$headers .= 'From: '. $email. "\r\n" .
$headers .= "Reply-To: ". $email. "\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();

$message = nl2br($message);

$status = mail($to, $subject, $message, $headers);

if($status)
    { 
        echo '<p>Your Message has been send!</p>';
    } else { 
        echo '<p>Something went wrong. Please try again.</p>'; 
    }
?>
...