कोडइग्निटर का उपयोग करके ईमेल कैसे भेजें
वेब एप्लीकेशन में ईमेल बहुत महत्वपूर्ण है। जब कोई उपयोगकर्ता साइन अप करता है, तो हम उसे अपना ईमेल पता सत्यापित करने और उपयोगकर्ता को सदस्यता की पुष्टि करने की अनुमति देने के लिए एक ईमेल भेजना चाह सकते हैं। हम भूले हुए पासवर्ड को रीसेट करने, ग्राहकों को चालान और रसीदें भेजने आदि के लिए भी ईमेल का उपयोग करते हैं। CodeIgniter हमारे लिए विभिन्न विकल्पों का उपयोग करके हमारे एप्लिकेशन से ईमेल भेजना बहुत आसान बनाता है।
कोडइग्निटर में एक अंतर्निहित ईमेल लाइब्रेरी है जिसके साथ हम ईमेल भेजते समय काम कर सकते हैं।
कोडइग्निटर ईमेल कॉन्फ़िगरेशन
हमें एक केंद्रीय स्थान की आवश्यकता है जहाँ हम ईमेल सेटिंग्स का प्रबंधन कर सकें। कोड इग्निटर ईमेल के लिए कॉन्फ़िगरेशन फ़ाइल के साथ नहीं आता है, इसलिए हमें खुद ही एक बनाना होगा।
application/config निर्देशिका में email.php फ़ाइल बनाएँ
email.php में निम्नलिखित कोड जोड़ें
<?php defined('BASEPATH') OR exit('No direct script access allowed'); $config = array( 'protocol' => 'smtp', // 'mail', 'sendmail', or 'smtp' 'smtp_host' => 'smtp.example.com', 'smtp_port' => 465, 'smtp_user' => 'no-reply@example.com', 'smtp_pass' => '12345!', 'smtp_crypto' => 'ssl', //can be 'ssl' or 'tls' for example 'mailtype' => 'text', //plaintext 'text' mails or 'html' 'smtp_timeout' => '4', //in seconds 'charset' => 'iso-8859-1', 'wordwrap' => TRUE );
यहाँ,
- 'प्रोटोकॉल' => 'smtp', वह प्रोटोकॉल निर्दिष्ट करता है जिसे आप ईमेल भेजते समय उपयोग करना चाहते हैं। यह Gmail smtp सेटिंग या आपके होस्ट से smtp सेटिंग हो सकती है
- 'smtp_host' => 'smtp.example.com', smtp होस्ट को निर्दिष्ट करता है। उदाहरण के लिए, यदि आप Gmail का उपयोग करना चाहते हैं तो आपके पास smtp.gmail.com जैसा कुछ होगा
- 'smtp_port' => 465, निर्दिष्ट smtp होस्ट पर एक खुला पोर्ट जिसे smtp मेल के लिए कॉन्फ़िगर किया गया है
- 'smtp_user' => 'no-reply@example.com', वह ईमेल पता जिसे ईमेल भेजते समय प्रेषक के रूप में उपयोग किया जाएगा। यह एक वैध ईमेल पता होना चाहिए जो सर्वर पर मौजूद हो
- 'smtp_pass' => '12345!', निर्दिष्ट smtp उपयोगकर्ता ईमेल का पासवर्ड
- 'smtp_crypto' => 'ssl', उपयोग की जाने वाली एन्क्रिप्शन विधि को निर्दिष्ट करता है, जैसे ssl, tls आदि।
- 'ईमेल टाइप' => 'टेक्स्ट', इस्तेमाल किए जाने वाले मेल टाइप को सेट करता है। यह आपकी ज़रूरतों के हिसाब से सादा टेक्स्ट या HTML हो सकता है।
- 'smtp_timeout' => '4', सेकण्ड में वह समय निर्दिष्ट करता है जो टाइमआउट अपवाद उत्पन्न होने से पहले होस्ट से कनेक्ट करने का प्रयास करते समय व्यतीत होना चाहिए।
- 'charset' => 'iso-8859-1', ईमेल भेजते समय उपयोग किए जाने वाले वर्ण सेट को परिभाषित करता है।
- 'wordwrap' => TRUE को TRUE पर सेट किया जाता है तो word-wrap सक्षम होता है। यदि इसे FALSE पर सेट किया जाता है तो word-wrap सक्षम नहीं होता है
नोट: ईमेल भेजने के लिए आपको वैध कॉन्फ़िगरेशन पैरामीटर प्रदान करने चाहिए। डमी पैरामीटर ईमेल भेजने में सक्षम नहीं होंगे।
कोडइग्निटर ईमेल दृश्य
इस अनुभाग में, हम वह दृश्य बनाएंगे जो प्राप्तकर्ता को ईमेल भेजेगा।
एप्लिकेशन/व्यूज़ में एक नई निर्देशिका ईमेल बनाएँ
एक नई फ़ाइल बनाएं contact.php application/views/email
application/views/email/contact.php में निम्न कोड जोड़ें
<!DOCTYPE html> <html> <head> <title>CodeIgniter Send Email</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div> <h3>Use the form below to send email</h3> <form method="post" action="<?=base_url('email')?>" enctype="multipart/form-data"> <input type="email" id="to" name="to" placeholder="Receiver Email"> <br><br> <input type="text" id="subject" name="subject" placeholder="Subject"> <br><br> <textarea rows="6" id="message" name="message" placeholder="Type your message here"></textarea> <br><br> <input type="submit" value="Send Email" /> </form> </div> </body> </html>
यहाँ,
- हमारे पास एक बुनियादी HTML फॉर्म है जो ईमेल, विषय और संदेश को स्वीकार करता है और फिर पैरामीटर्स को ईमेल रूट पर भेजता है।
कोडइग्निटर ईमेल नियंत्रक
आइए अब वह नियंत्रक बनाएं जो ईमेल भेजने का काम संभालेगा
application/controllers/EmailController.php में एक नई फ़ाइल EmailController.php बनाएँ
EmailController.php में निम्नलिखित कोड जोड़ें
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class EmailController extends CI_Controller { public function __construct() { parent:: __construct(); $this->load->helper('url'); } public function index() { $this->load->view('email/contact'); } function send() { $this->load->config('email'); $this->load->library('email'); $from = $this->config->item('smtp_user'); $to = $this->input->post('to'); $subject = $this->input->post('subject'); $message = $this->input->post('message'); $this->email->set_newline("\r\n"); $this->email->from($from); $this->email->to($to); $this->email->subject($subject); $this->email->message($message); if ($this->email->send()) { echo 'Your Email has successfully been sent.'; } else { show_error($this->email->print_debugger()); } } }
यहाँ,
- class EmailController extends CI_Controller {…} हमारे ईमेल नियंत्रक को परिभाषित करता है जो पैरेंट CodeIgniter नियंत्रक का विस्तार करता है।
- public function __construct() {…} चाइल्ड कंस्ट्रक्टर को परिभाषित करता है जो पैरेंट कंस्ट्रक्टर विधि को कॉल करता है।
- सार्वजनिक फ़ंक्शन इंडेक्स() {…} इंडेक्स विधि को परिभाषित करता है जो संपर्क फ़ॉर्म प्रदर्शित करता है
- फ़ंक्शन send() {…} ईमेल भेजने वाली विधि को परिभाषित करता है
- $this->load->config('email'); ईमेल कॉन्फ़िगरेशन सेटिंग्स लोड करता है
- $this->load->library('email'); ईमेल लाइब्रेरी लोड करता है
- $from = $this->config->item('smtp_user'); हमारे द्वारा परिभाषित ईमेल कॉन्फ़िगरेशन फ़ाइल से प्रेषक आईडी प्राप्त करता है।
- $to = $this->input->post('to'); सबमिट किए गए फॉर्म से to मान प्राप्त करता है
- $subject = $this->input->post('subject'); फॉर्म से ईमेल का विषय निर्धारित करता है
- $message = $this->input->post('message'); फॉर्म से ईमेल संदेश सेट करता है
- $this->email->set_newline(“\r\n”); ईमेल के लिए नए लाइन अक्षर परिभाषित करता है
- $this->email->from($from); प्रेषक का ईमेल पता सेट करता है
- $this->email->to($to); प्राप्तकर्ता का ईमेल पता सेट करता है
- $this->email->subject($subject); ईमेल विषय निर्धारित करता है
- $this->email->message($message); ईमेल संदेश सेट करता है
- अगर ($this->email->send()) {…} ईमेल भेजने का प्रयास करता है। अगर ईमेल सफलतापूर्वक भेजा जाता है, तो संदेश आपका ईमेल सफलतापूर्वक भेजा गया है अन्यथा डीबग जानकारी मुद्रित होती है कि क्या गलत हो सकता है।
आइये अब ईमेल रूट को परिभाषित करें
ईमेल मार्ग
application/config/routes.php में निम्नलिखित रूट जोड़ें
$route['send-email'] = 'EmailController'; $route['email'] = 'EmailController/send';
अब हम वेब ब्राउज़र में संपर्क फ़ॉर्म लोड कर सकते हैं
आइये अंतर्निहित PHP सर्वर शुरू करें
टर्मिनल/कमांड लाइन खोलें और अपने एप्लिकेशन के रूट पर ब्राउज़ करें। मेरे मामले में, रूट ड्राइव C:\Sites\ci-app में स्थित है
cd C:\Sites\ci-app
निम्नलिखित कमांड का उपयोग करके सर्वर प्रारंभ करें
php -S localhost:3000
अपने वेब ब्राउज़र में निम्नलिखित URL लोड करें: http://localhost:3000/send-email
आपको निम्नलिखित फॉर्म दिखाई देना चाहिए
प्राप्तकर्ता का ईमेल, विषय और ईमेल संदेश दर्ज करें और फिर ईमेल भेजें पर क्लिक करें। यदि आपकी ईमेल कॉन्फ़िगरेशन ठीक से सेट की गई है, तो आपको सफल संदेश देखने में सक्षम होना चाहिए।
सारांश
बिल्ट-इन ईमेल लाइब्रेरी हमारे लिए न्यूनतम कोड के साथ ईमेल भेजना आसान बनाती है। लाइब्रेरी इस मायने में भी बहुत लचीली है कि आप इसे अपनी आवश्यकताओं के अनुसार कॉन्फ़िगर कर सकते हैं।