ईमेल भेजने का तरीका Codeआग लगनेवाला
⚡ स्मार्ट सारांश
CodeIgniter Sending Email, SMTP या स्थानीय मेल सर्वर के माध्यम से संदेश भेजने के लिए फ्रेमवर्क की अंतर्निहित ईमेल लाइब्रेरी पर निर्भर करता है। यह उदाहरण एक ईमेल कॉन्फ़िगरेशन फ़ाइल, एक संपर्क फ़ॉर्म दृश्य और एक नियंत्रक बनाता है जो फ़ॉर्म इनपुट पढ़ता है और संदेश भेजता है।
वेब अनुप्रयोगों में ईमेल का बहुत महत्व है। जब कोई उपयोगकर्ता साइन अप करता है, तो हम उनके ईमेल पते की पुष्टि करने और सदस्यता की पुष्टि करने के लिए उन्हें ईमेल भेजना चाहते हैं। हम भूले हुए पासवर्ड रीसेट करने और ग्राहकों को चालान और रसीदें भेजने के लिए भी ईमेल का उपयोग करते हैं। Codeइग्नाइटर की मदद से हम विभिन्न विकल्पों का उपयोग करके अपने एप्लिकेशन से ईमेल भेजना बेहद आसान बना सकते हैं।
CodeIgniter में एक अंतर्निर्मित ईमेल लाइब्रेरी है जिसका उपयोग हम ईमेल भेजते समय कर सकते हैं।
Codeइग्नाइटर ईमेल कॉन्फ़िगरेशन
हमें एक केंद्रीय स्थान की आवश्यकता है जहाँ हम ईमेल सेटिंग्स को प्रबंधित कर सकें। 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 );
यहाँ,
- 'protocol' => 'smtp', ईमेल भेजते समय उपयोग किए जाने वाले प्रोटोकॉल को निर्दिष्ट करता है। यह हो सकता है Gmail एसएमटीपी सेटिंग्स या आपके होस्ट से एसएमटीपी सेटिंग्स
- '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 आदि।
- 'mailtype' => 'text', ईमेल का प्रकार निर्धारित करता है। यह आपकी आवश्यकतानुसार सादा टेक्स्ट या HTML हो सकता है।
- 'smtp_timeout' => '4', सेकण्ड में वह समय निर्दिष्ट करता है जो टाइमआउट अपवाद उत्पन्न होने से पहले होस्ट से कनेक्ट करने का प्रयास करते समय व्यतीत होना चाहिए।
- 'charset' => 'iso-8859-1', ईमेल भेजते समय उपयोग किए जाने वाले वर्ण सेट को परिभाषित करता है।
- 'वर्ड रैप' => TRUE, यदि इसे TRUE पर सेट किया जाता है तो वर्ड रैप सक्षम हो जाता है। यदि इसे FALSE पर सेट किया जाता है, तो वर्ड रैप सक्षम नहीं होता है।
नोट: ईमेल भेजने के लिए आपको वैध कॉन्फ़िगरेशन पैरामीटर प्रदान करने चाहिए। डमी पैरामीटर ईमेल भेजने में सक्षम नहीं होंगे।
Codeइग्नाइटर ईमेल दृश्य
इस अनुभाग में, हम वह दृश्य बनाएंगे जो प्राप्तकर्ता को ईमेल भेजेगा।
एप्लिकेशन/व्यूज़ में एक नई निर्देशिका ईमेल बनाएँ
application/views/email फ़ोल्डर में contact.php नाम की एक नई फ़ाइल बनाएँ।
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(0)?>" 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>
यहाँ,
- हमारे पास एक बेसिक एचटीएमएल फॉर्म है जो ईमेल, विषय और संदेश को स्वीकार करता है, फिर उन मापदंडों को ईमेल रूट में भेजता है।
Codeइग्नाइटर ईमेल नियंत्रक
अब आइए उस कंट्रोलर को बनाते हैं जो ईमेल भेजने का काम संभालेगा।
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 {…} हमारे ईमेल कंट्रोलर को परिभाषित करता है जो पैरेंट क्लास से विस्तारित होता है। Codeइग्नाइटर नियंत्रक।
- 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); ईमेल संदेश सेट करता है
- if ($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
आपको निम्नलिखित फॉर्म दिखाई देना चाहिए
प्राप्तकर्ता का ईमेल पता, विषय और ईमेल संदेश दर्ज करें, फिर "ईमेल भेजें" पर क्लिक करें। यदि आपकी ईमेल सेटिंग सही है, तो आपको सफलता का संदेश दिखाई देगा।
HTML ईमेल और अटैचमेंट कैसे भेजें Codeआग लगनेवाला
इसी ईमेल लाइब्रेरी की मदद से उच्च प्रारूप वाले संदेश और फाइलें भेजी जा सकती हैं। दो छोटे बदलाव करके ऊपर दिए गए सादे टेक्स्ट के उदाहरण को अटैचमेंट वाले HTML ईमेल में बदला जा सकता है।
$this->email->set_mailtype('html'); $this->email->message('<h3>Welcome</h3><p>Thanks for joining us.</p>'); $this->email->attach('/path/to/report.pdf');
- set_mailtype('html'): यह लाइब्रेरी को बताता है कि बॉडी में HTML शामिल है, इसलिए हेडिंग और लिंक जैसे टैग प्राप्तकर्ता के इनबॉक्स में दिखाई देते हैं।
- संलग्न करना(): यह संदेश में सर्वर पथ से एक फ़ाइल जोड़ता है; send() से पहले प्रत्येक फ़ाइल के लिए इसे एक बार कॉल करें।
ध्यान रखें कि HTML ईमेल में अभी भी एक सादा टेक्स्ट विकल्प शामिल होना चाहिए, और बड़े अटैचमेंट को सख्त मेल सर्वर द्वारा अस्वीकार किया जा सकता है।


