PHPMailer लाइब्रेरी: PHP पर पेशेवर ईमेल भेजना
ईमेल भेजना किसी भी आधुनिक वेब एप्लिकेशन के प्रमुख कार्यों में से एक है। PHP का अंतर्निहित फंक्शन mail() अक्सर पर्याप्त लचीला और सुरक्षित नहीं होता: यह SMTP प्रमाणीकरण, TLS/SSL एन्क्रिप्शन, अटैचमेंट के साथ HTML ईमेल भेजने का समर्थन नहीं करता, और साझा होस्टिंग पर हमेशा सही ढंग से काम नहीं करता। इन समस्याओं का समाधान PHPMailer लाइब्रेरी है, जो PHP पर ईमेल भेजने के लिए डी फैक्टो मानक बन गई है।
PHPMailer क्या है?
PHPMailer PHP स्क्रिप्ट से ईमेल भेजने के लिए एक शक्तिशाली और उपयोग में आसान लाइब्रेरी है। यह समर्थन करती है:
- SMTP सर्वर (Gmail, Yandex, Mail.ru, कॉर्पोरेट मेल) के माध्यम से भेजना;
- TLS और SSL एन्क्रिप्शन;
- अटैचमेंट (चित्र, PDF, दस्तावेज़) के साथ HTML ईमेल;
- UTF-8 एन्कोडिंग और किसी भी भाषा (हिंदी, चीनी, आदि) के साथ काम करना;
- HTML के बिना ईमेल क्लाइंट के लिए वैकल्पिक टेक्स्ट (plain-text);
- स्पैम से सुरक्षा के लिए DKIM और SPF हस्ताक्षर;
- फ़ॉलबैक के रूप में लोकल sendmail या अंतर्निहित mail() के माध्यम से काम करना।
PHPMailer की स्थापना
सबसे आसान तरीका Composer के माध्यम से है। टर्मिनल में अपने प्रोजेक्ट की रूट डायरेक्टरी में यह कमांड चलाएँ:
composer require phpmailer/phpmailerयदि Composer का उपयोग नहीं किया गया है, तो आप GitHub से आर्काइव डाउनलोड कर सकते हैं और फ़ाइलों को मैन्युअल रूप से शामिल कर सकते हैं:
require_once '/पथ/से/PHPMailer/src/PHPMailer.php';require_once '/पथ/से/PHPMailer/src/SMTP.php';require_once '/पथ/से/PHPMailer/src/Exception.php';SMTP Gmail के माध्यम से ईमेल भेजने का मूल उदाहरण
Gmail SMTP सर्वर के माध्यम से ईमेल भेजने के लिए न्यूनतम सेटअप देखें। ध्यान दें: काम करने के लिए आपको Google खाता सेटिंग्स में एक ऐप पासवर्ड बनाना होगा (या "कम सुरक्षित ऐप्स तक पहुँच" का कम सुरक्षित विकल्प उपयोग करना होगा)।
<?phpuse PHPMailer\\PHPMailer\\PHPMailer;use PHPMailer\\PHPMailer\\SMTP;use PHPMailer\\PHPMailer\\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try { // सर्वर सेटिंग्स $mail->SMTPDebug = SMTP::DEBUG_OFF; // डीबग (0 - बंद, 2 - विस्तृत) $mail->isSMTP(); // SMTP का उपयोग करें $mail->Host = 'smtp.gmail.com'; // SMTP सर्वर $mail->SMTPAuth = true; // प्रमाणीकरण चालू करें $mail->Username = 'your-email@gmail.com'; // SMTP लॉगिन $mail->Password = 'your-app-password'; // SMTP पासवर्ड (ऐप पासवर्ड) $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL $mail->Port = 465; // SSL के लिए पोर्ट (TLS के लिए 587)
// प्रेषक और प्राप्तकर्ता $mail->setFrom('from@example.com', 'प्रेषक का नाम'); $mail->addAddress('to@example.com', 'प्राप्तकर्ता का नाम'); // कई जोड़े जा सकते हैं $mail->addReplyTo('reply@example.com', 'उत्तर दें');
// अटैचमेंट (वैकल्पिक) $mail->addAttachment('/पथ/से/फ़ाइल.pdf', 'नाम.pdf');
// ईमेल की सामग्री $mail->isHTML(true); // HTML प्रारूप $mail->Subject = 'PHPMailer से नमस्ते!'; $mail->Body = '<b>यह HTML ईमेल है</b> हिंदी टेक्स्ट के साथ।'; $mail->AltBody = 'यह HTML के बिना ईमेल क्लाइंट के लिए वैकल्पिक टेक्स्ट है।';
$mail->send(); echo 'ईमेल सफलतापूर्वक भेजा गया';} catch (Exception $e) { echo "त्रुटि: {$mail->ErrorInfo}";}?>Yandex.Mail के माध्यम से भेजना
Yandex.Mail के लिए पैरामीटर थोड़े बदल जाते हैं। महत्वपूर्ण: मेलबॉक्स सेटिंग्स में IMAP/SMTP प्रोटोकॉल के माध्यम से पहुँच की अनुमति देना और ऐप पासवर्ड बनाना आवश्यक है (यदि दो-कारक प्रमाणीकरण चालू है)।
$mail