Вопрос

Я использую форму ниже. Я использую страницу, contact.php, чтобы отобразить форму и отправить форму. Форма подтверждает и говорит отправленную электронную почту, но когда я проверяю электронную почту, он не показывает.

PHP:

         <?php
          function spamcheck($field)
           {
         //filter_var() sanitizes the e-mail
      //address using FILTER_SANITIZE_EMAIL
       $field=filter_var($field, FILTER_SANITIZE_EMAIL);

       //filter_var() validates the e-mail
      //address using FILTER_VALIDATE_EMAIL
        if(filter_var($field, FILTER_VALIDATE_EMAIL))
          {
         return TRUE;
            }
         else
        {
         return FALSE;
             }
         }

          if (isset($_REQUEST['email']))
           {//if "email" is filled out, proceed

             //check if the email address is invalid
           $mailcheck = spamcheck($_REQUEST['email']);
           if ($mailcheck==FALSE)
            {
               echo "Invalid input";
                 }
            else
          {//send email
         $email = $_REQUEST['email'] ;
          $subject = $_REQUEST['subject'] ;
         $message = $_REQUEST['message'] ;
        mail("me@mysite.com", "Subject: $subject",
         $message, "From: $email" );
        echo "Thank you for using our mail form";
           }
         }
        else
         {//if "email" is not filled out, display the form
         echo "<form method='post' action='contact.php'>
        Email: <input name='email' type='text' /><br />
        Subject: <input name='subject' type='text' /><br />
         Message:<br />
      <textarea name='message' rows='15' cols='40'>
      </textarea><br />
       <input type='submit' />
      </form>";
        }
          ?>
Это было полезно?

Решение

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

Другие советы

В вашей форме, когда сообщение «Спасибо» отображается, это означает, что почтовая функция была запущена, не то, что она удалась. Функция PHP Mail возвращает true, когда она успешна и overwise false. Не могли бы вы попробовать что-то вроде:

if(mail("me@mysite.com", "Subject: $subject",$message, "From: $email")){
echo "Thank you for using our mail form";
}else{
echo "hmm... seems the mail cannot be sent";
}

Также разрешена почтовая функция в PHP.INI?

Попробуйте отправить почту «из» адрес, который у вас есть на контактах. Вы уверены, что ваша учетная запись электронной почты принимает эти подменные электронные письма? Gmail отправляет эти электронные письма PHP с адресов, а не в вашем списке контактов в SPAM. Попробуйте проверить на другой учетной записи электронной почты. Это стоит выстрела.

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

alert(mail(hey@joe.jh, subject, message, email));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top