PHP पर ईमेल भेजना: अंतर्निहित mail() से लेकर शक्तिशाली लाइब्रेरी तक
\n\nईमेल भेजना किसी भी वेब एप्लिकेशन के प्रमुख कार्यों में से एक है: उपयोगकर्ता पंजीकरण, पासवर्ड पुनर्प्राप्ति, सूचनाएं, न्यूज़लेटर। PHP में कई दृष्टिकोण मौजूद हैं: सबसे सरल अंतर्निहित फ़ंक्शन mail() से लेकर विशेष लाइब्रेरी जैसे PHPMailer और SwiftMailer तक। इस लेख में हम प्रत्येक विधि का विस्तार से विश्लेषण करेंगे, कोड उदाहरण दिखाएंगे और चयन के लिए सुझाव देंगे।
1. अंतर्निहित फ़ंक्शन mail()
\n\nफ़ंक्शन mail() ईमेल भेजने का सबसे सरल तरीका है। यह PHP कॉन्फ़िगरेशन (sendmail_path या SMTP) में सेट किए गए मेल सर्वर का उपयोग करता है। हालाँकि, इसकी क्षमताएं सीमित हैं, और यह आधुनिक आवश्यकताओं का समर्थन नहीं करता: HTML फ़ॉर्मेटिंग, अटैचमेंट, SMTP प्रमाणीकरण।
मूल उदाहरण
\n<?php\n$to = 'user@example.com';\n$subject = 'ईमेल का विषय';\n$message = 'नमस्ते! यह एक परीक्षण ईमेल है।';\n$headers = 'From: no-reply@mysite.ru' . "\\r\\n" .\n 'Reply-To: support@mysite.ru' . "\\r\\n" .\n 'X-Mailer: PHP/' . phpversion();\n\nif (mail($to, $subject, $message, $headers)) {\n echo 'ईमेल भेज दिया गया';\n} else {\n echo 'भेजने में त्रुटि';\n}\n?>\n\nmail() की कमियां
\n- \n
- HTML ईमेल का समर्थन नहीं (मैन्युअल रूप से
Content-Type: text/htmlनिर्दिष्ट करना होगा) \n - जटिल MIME हेरफेर के बिना फ़ाइलें संलग्न करना असंभव \n
- कोई एन्क्रिप्शन और SMTP प्रमाणीकरण नहीं \n
- सही हेडर की कमी के कारण ईमेल अक्सर स्पैम में चले जाते हैं \n
- त्रुटियों को डीबग करना कठिन \n
आधुनिक परियोजनाओं के लिए mail() अनुशंसित नहीं है। विशेष लाइब्रेरी का उपयोग करना बेहतर है।
2. PHPMailer — स्वर्ण मानक
\n\nPHPMailer PHP में ईमेल भेजने के लिए सबसे लोकप्रिय लाइब्रेरी है। यह SMTP, SSL/TLS, HTML ईमेल, अटैचमेंट, वैकल्पिक टेक्स्ट, कई प्राप्तकर्ता और बहुत कुछ का समर्थन करता है। इसे Composer के माध्यम से स्थापित किया जाता है:
\n\ncomposer require phpmailer/phpmailer\n\nSMTP (Gmail) के माध्यम से भेजने का उदाहरण
\n<?php\nuse PHPMailer\\PHPMailer\\PHPMailer;\nuse PHPMailer\\PHPMailer\\SMTP;\nuse PHPMailer\\PHPMailer\\Exception;\n\nrequire 'vendor/autoload.php';\n\n$mail = new PHPMailer(true);\n\ntry {\n // सर्वर सेटिंग्स\n $mail->SMTPDebug = SMTP::DEBUG_SERVER;\n $mail->isSMTP();\n $mail->Host = 'smtp.gmail.com';\n $mail->SMTPAuth = true;\n $mail->Username = 'your@gmail.com';\n $mail->Password = 'your-app-password'; // ऐप पासवर्ड\n $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;\n $mail->Port = 465;\n\n // प्रेषक और प्राप्तकर्ता\n $mail->setFrom('from@example.com', 'प्रेषक');\n $mail->addAddress('user@example.com', 'प्राप्तकर्ता');\n $mail->addReplyTo('info@example.com', 'जानकारी');\n\n // अटैचमेंट (वैकल्पिक)\n $mail->addAttachment('/path/to/file.pdf', 'document.pdf');\n\n // सामग्री\n $mail->isHTML(true);\n $mail->Subject = 'ईमेल का विषय';\n $mail->Body = '<h1>नमस्ते!</h1><p>इस ईमेल में <b>HTML</b> है।</p>';\n $mail->AltBody = 'नमस्ते! यह ईमेल का टेक्स्ट संस्करण है।';\n\n $mail->send();\n echo 'ईमेल भेज दिया गया';\n} catch (Exception $e) {\n echo "त्रुटि: {$mail->ErrorInfo}";\n}\n?>\n\nPHPMailer के लाभ
\n- \n
- प्रमाणीकरण के साथ SMTP का पूर्ण समर्थन \n
- स्वचालित MIME हेडर निर्माण \n
- अटैचमेंट और एम्बेडेड छवियों का समर्थन \n
- HTML और टेक्स्ट संस्करण के साथ काम करना \n
- विस्तृत त्रुटि संदेश \n
- सक्रिय सामुदायिक समर्थन \n
3. SwiftMailer — लचीली वास्तुकला के साथ विकल्प
\n\nSwiftMailer एक और शक्तिशाली लाइब्रेरी है (अब इसे