Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 41

Contact Form with Email

हम क्या बना रहे हैं

Contact form visitors को आपकी website से message भेजने देता है। इसके दो हिस्से हैं: एक HTML form जो user भरता है, और एक PHP file जो input validate करके उसे आपके email को भेजती है। इसे सुरक्षित और भरोसेमंद तरीके से संभालना बहुत आम काम है।

💡 Built-in mail() demos के लिए चलता है, पर असली sites के लिए SMTP के साथ PHPMailer इस्तेमाल कीजिए ताकि messages सच में पहुँचें।

Contact form

<form method="post" action="contact.php">
  <input type="text"  name="name"    placeholder="Your name">
  <input type="email" name="email"   placeholder="Your email">
  <textarea name="message" placeholder="Message"></textarea>
  <button type="submit">Send</button>
</form>

Form contact.php को post करता है। हर field का name वो key है जो PHP पढ़ता है। fields सरल और साफ़ labelled रखिए।

Input validate करना

Raw input कभी email न कीजिए। पहले जाँचिए।

<?php
  $name    = trim($_POST["name"] ?? "");
  $email   = trim($_POST["email"] ?? "");
  $message = trim($_POST["message"] ?? "");

  $errors = [];
  if ($name === "") $errors[] = "Name required";
  if (!filter_var($email, FILTER_VALIDATE_EMAIL)) $errors[] = "Valid email required";
  if ($message === "") $errors[] = "Message required";
?>

हम हर field trim करते हैं, name और message ज़रूरी करते हैं, और email को filter_var से validate करते हैं। mail सिर्फ़ तब भेजिए जब $errors खाली हो।

Email भेजना

<?php
  if (empty($errors)) {
      $to      = "you@yoursite.com";
      $subject = "New contact from $name";
      $body    = "From: $name ($email)\n\n$message";
      $headers = "From: no-reply@yoursite.com\r\n";
      $headers .= "Reply-To: $email\r\n";

      if (mail($to, $subject, $body, $headers)) {
          echo "Message sent";
      }
  }
?>
Message sent

ध्यान दीजिए From आपका अपना address है और visitor का email Reply-To में जाता है — ताकि आप reply कर सकें, बिना spoofing filters trigger किए।

PHPMailer क्यों

Plain mail() function अक्सर spam में जाता है या चुपचाप fail होता है। असली sites के लिए PHPMailer इस्तेमाल कीजिए, जो आपके email account के login के साथ SMTP से भेजता है, ताकि messages सही authenticated हों और inbox तक पहुँचें।

<?php
  // सरल PHPMailer विचार:
  $mail->isSMTP();
  $mail->Host = "smtp.gmail.com";
  $mail->SMTPAuth = true;
  $mail->Username = "you@gmail.com";
  $mail->Password = "app-password";
  $mail->send();
?>

PHPMailer authentication, encoding और attachments सही संभालता है — production के लिए भरोसेमंद विकल्प।

आम गलतियाँ

  • Raw input email करना। हमेशा validate कीजिए; email को filter_var से जाँचिए।
  • Visitor email को From में डालना। From में अपना address, Reply-To में visitor का।
  • Production में mail() पर भरोसा। भरोसेमंद delivery को PHPMailer + SMTP इस्तेमाल कीजिए।
  • कोई spam protection नहीं। bots रोकने को honeypot या CAPTCHA जोड़िए।

सारांश

  • Contact form = एक HTML form और PHP handler जो आपको email करता है।
  • हर field validate कीजिए और email को filter_var से जाँचिए।
  • अपना address From में, visitor का Reply-To में डालिए।
  • भरोसेमंद delivery को plain mail() नहीं, PHPMailer + SMTP इस्तेमाल कीजिए।
  • honeypot या CAPTCHA जैसी spam protection जोड़िए।

आगे, input अच्छे से validate कीजिए form validation से, या जाँच जोड़िए PHP CAPTCHA से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

PHP contact form email कैसे भेजता है?
Form name, email और message को एक PHP file को post करता है। PHP input validate करके फिर email भेजता है — या तो built-in mail() function से या, ज़्यादा भरोसेमंद, PHPMailer जैसी library से SMTP इस्तेमाल करके।
PHP mail() अक्सर deliver क्यों नहीं होता?
Built-in mail() function server के mail भेजने को configured होने पर निर्भर है, और इसके messages अक्सर spam में जाते हैं या block होते हैं। असली sites के लिए सही SMTP settings के साथ PHPMailer कहीं ज़्यादा भरोसेमंद है।
Contact form में spam कैसे रोकूँ?
सारे fields validate कीजिए, email को filter_var से जाँचिए, और honeypot field या CAPTCHA जैसी सरल जाँच जोड़िए। Raw, बिना जाँचे input कभी email न कीजिए, और जो वापस दिखाएँ उसे escape कीजिए।
क्या visitor का email From header में डालूँ?
नहीं। From में अपना verified address इस्तेमाल कीजिए और visitor का email Reply-To में डालिए। Visitor के address से भेजना अक्सर spoofing के रूप में block होता है।
PHPMailer क्या है?
PHPMailer एक लोकप्रिय library है जो सही authentication के साथ SMTP से email भेजती है। यह headers, attachments और encoding सही संभालती है, ताकि आपके messages सच में inbox तक पहुँचें — plain mail() से बहुत बेहतर।
← Back to PHP Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicImage Upload Script आपकी प्रगति: 41 / 50 (82%) · Lesson 42 / 50 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें