Не получаю письма

0

Привет, я просмотрел онлайн-учебник по php и не получил письмо от этой контактной формы и не смог понять, где я был не прав

<html>
  <head></head>
    <body>

        <?php 
            if(isset($_POST["submit"])){
                $email = $_POST['email'];
                $subject = $_POST['subject'];
                $message = $_POST['message'];
                mail("[email protected]",$subject, $message, "From:" . $email);
            }
        ?>

        <h1>Contact Us</h1>
        <form method="post" action="abc.html">
            <table align="center" style="color:#fff;">
                <tr><td style="color:black">Email:<input type="text" name="email" /></td></tr>
                <tr><td style="color:black">subject:<input type="text" name="subject" /></td></tr>
                <tr><td style="color:black">Message:<br>
                <textarea name="message" cols="40" rows="15">Type your message here</textarea>
                <input type="submit" name="submit" value="send" /></td></tr>
            </table>
        </form>
    </body>
</html>
  • 2
    Ваша форма публикуется в HTML-файл?
  • 1
    Вы проверяли возвращаемое значение mail звонка? Вы смотрели в папку со спамом? Вы смотрели почтовый журнал отправляющего хоста?
Показать ещё 9 комментариев
Теги:
contact-form

4 ответа

0
Лучший ответ

Есть три возможных способа заставить его работать. в котором вы должны следовать сначала одним обязательным.

1) Переименуйте файл из abc.html → abc.php, а также проверьте, доступен ли PHP и работает ли ваш локальный хост-сервер.

2) Измените свой тег формы на

<form name="mailform" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> OR
<form name="mailform" method="post" action="">

чтобы ваши опубликованные данные были доступны на одной странице.

3) Вместо

if(isset($_POST["submit"])){

условие попытаться использовать

if(isset($_POST["submit"]) && isset($_POST["email"]) && isset($_POST["subject"])){

с проверкой нулевого значения. Это обеспечит доступность данных в функции почты. Также попробуйте расширить функцию почты ниже заголовков.

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

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

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

1

Вам нужно загрузить страницу:

  • Веб-сервер (поэтому нет file:/// URI)
  • с установленным PHP
  • с PHP, настроенным для обработки файла (серверы, которые обрабатывают файлы с расширением .html с PHP, очень редки).
  • 0
    И если вы находитесь в Windows с правильной конфигурацией SMTP-сервера в вашем PHP.ini
0

Ваш код будет работать, если вы выполните следующие две задачи:

  1. Поскольку вы отправляете на ту же страницу, вы можете удалить часть действия.

    <form method="post" action="">
    
  2. Сохраните текущую страницу как.php файл.

Ваша страница будет abc.php

Теперь запустите свою страницу в браузере и отправьте форму.

ps: вам нужно будет запустить apache с установленным php.

Вы можете проверить это, создав новую страницу со следующим содержимым:

<?php phpinfo();?>

Надеюсь, это имеет смысл.

  • 0
    Я изменился, как вы сказали, и добавил его на мой сайт jhcsnagpur.com 1) нажмите на провидцев 2) снова нажмите на провидцев
0

Прежде всего, отправка почты через PHP с настройками по умолчанию требует установки и настройки службы Sendmail на сервере. В Unix-серверах вы можете проверить файл /usr/spool/mail/username или /var/log/maillog для журнала почты() "использование".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню