ईमेल भेजने का तरीका Codeआग लगनेवाला

वेब अनुप्रयोगों में ईमेल का बहुत महत्व है। जब कोई उपयोगकर्ता साइन अप करता है, तो हम उनके ईमेल पते की पुष्टि करने और सदस्यता की पुष्टि करने के लिए उन्हें ईमेल भेजना चाहते हैं। हम भूले हुए पासवर्ड रीसेट करने, ग्राहकों को चालान और रसीदें भेजने आदि के लिए भी ईमेल का उपयोग करते हैं। 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’, specifies the protocol that you want to use when sending email. This could be Gmail smtp settings or smtp settings from your host
  • ‘smtp_host’ => ‘smtp.example.com’,specifies the smtp host. For example, if you want to use Gmail then you would have something like 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 सक्षम नहीं होता है

नोट: ईमेल भेजने के लिए आपको वैध कॉन्फ़िगरेशन पैरामीटर प्रदान करने चाहिए। डमी पैरामीटर ईमेल भेजने में सक्षम नहीं होंगे।

Codeइग्नाइटर ईमेल दृश्य

इस अनुभाग में, हम वह दृश्य बनाएंगे जो प्राप्तकर्ता को ईमेल भेजेगा।

एप्लिकेशन/व्यूज़ में एक नई निर्देशिका ईमेल बनाएँ

एक नई फ़ाइल बनाएं 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 फॉर्म है जो ईमेल, विषय और संदेश को स्वीकार करता है और फिर पैरामीटर्स को ईमेल रूट पर भेजता है।

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); ईमेल संदेश सेट करता है
    • अगर ($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

आपको निम्नलिखित फॉर्म दिखाई देना चाहिए

ईमेल मार्ग

प्राप्तकर्ता का ईमेल, विषय और ईमेल संदेश दर्ज करें और फिर ईमेल भेजें पर क्लिक करें। यदि आपकी ईमेल कॉन्फ़िगरेशन ठीक से सेट की गई है, तो आपको सफल संदेश देखने में सक्षम होना चाहिए।

सारांश

बिल्ट-इन ईमेल लाइब्रेरी हमारे लिए न्यूनतम कोड के साथ ईमेल भेजना आसान बनाती है। लाइब्रेरी इस मायने में भी बहुत लचीली है कि आप इसे अपनी आवश्यकताओं के अनुसार कॉन्फ़िगर कर सकते हैं।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: