سؤال

أنا أستخدم النموذج أدناه. أنا أستخدم الصفحة ، contact.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 صحيحًا عندما تنجح و othwerwise 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 من العناوين الموجودة في قائمة جهات الاتصال الخاصة بك إلى البريد العشوائي. حاول اختبار حساب بريد إلكتروني مختلف. إنه يستحق اللقطة.

اختبار آخر يمكنك تشغيله هو استخدام تنبيه لاسترداد عودة Mail () ، للتحقق مما إذا كان يتحقق أو خطأ ..

alert(mail(hey@joe.jh, subject, message, email));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top