Magento का उपयोग करके ईमेल कैसे भेजें


16

मैंने Magento में कुछ इनपुट फ़ील्ड के साथ एक फॉर्म बनाया है। लेकिन जब मैं सबमिट पर क्लिक करता हूं, तो Magento ईमेल नहीं भेजेगा।

मैं Magento में एक बुनियादी ईमेल कैसे भेज सकता हूं?


क्या मुझे ऐप / कोड / स्थानीय / निर्देशिका में एक अलग मॉड्यूल बनाने की आवश्यकता है
मौनी

क्यों एक देशी अंग्रेजी वक्ता नहीं है और Magento की महारत के लिए हास्यास्पद टाइपोस आवश्यकताओं के साथ विस्तृत ट्यूटोरियल लिख रहा है ???
स्पेंसर विलियम्स

1
No @SpencerWilliams "इसका टो कारण है"
एजाज

जवाबों:


35

Magento में ईमेल भेजने के लिए सरल कार्य

<?php
    public function sendMailAction() 
    {
        $html="
        put your html content here
        blah blah

        ";
        $mail = Mage::getModel('core/email');
        $mail->setToName('Your Name');
        $mail->setToEmail('Youe Email');
        $mail->setBody('Mail Text / Mail Content');
        $mail->setSubject('Mail Subject');
        $mail->setFromEmail('Sender Mail Id');
        $mail->setFromName("Msg to Show on Subject");
        $mail->setType('html');// You can use Html or text as Mail format
        $mail->setBodyHTML($html);  // your content or message

        try {
            $mail->send();
            Mage::getSingleton('core/session')->addSuccess('Your request has been sent');
            $this->_redirect('');
        }
        catch (Exception $e) {
            Mage::getSingleton('core/session')->addError('Unable to send.');
            $this->_redirect('');
        }
    }
?>

संदर्भ


किस निर्देशिका में मुझे उपरोक्त कोड रखने की आवश्यकता है। क्या आप मुझे सुझाव दे सकते हैं।
मौनी

आप अपनी नियंत्रक फ़ाइल, सहायक या ब्लॉक में जोड़ सकते हैं जहाँ आप इसे चाहते हैं ..
Qaisar Satti

मैंने कोई सहायक या मॉडल नहीं बनाया था, फिर मैं इसका इस्तेमाल कैसे कर सकता हूं। कृपया समझाएं
मौनी

फिर अपने phtml फ़ाइल में इस फ़ंक्शन को जोड़ें और वहाँ से मेल भेजें ..
Qaisar Satti

क्या मैं $ mail-> setToName ($ नाम) के रूप में चर का उपयोग कर सकता हूं।
मौनी

5

नया टेम्प्लेट फॉर्म "ट्रांसेक्शनल ईमेल" बनाएँ।

hello {{var customerName}},
  You received test template. 
Thank you

New Template Note बनाने के बाद इसकी ID

नियंत्रक क्रिया बनाएँ

public function sendEnquiry()
{
$customer = Mage::getSingleton('customer/session')->getCustomer();

$templateId = 8; // Enter you new template ID
$senderName = Mage::getStoreConfig('trans_email/ident_support/name');  //Get Sender Name from Store Email Addresses
$senderEmail = Mage::getStoreConfig('trans_email/ident_support/email');  //Get Sender Email Id from Store Email Addresses
$sender = array('name' => $senderName,
            'email' => $senderEmail);

// Set recepient information
$recepientEmail = $customer->getEmail();
$recepientName = $customer->getName();      

// Get Store ID     
$store = Mage::app()->getStore()->getId();

// Set variables that can be used in email template
$vars = array('customerName' => $customer->getName());  


// Send Transactional Email
Mage::getModel('core/email_template')
    ->sendTransactional($templateId, $sender, $recepientEmail, $recepientName, $vars, $storeId);

Mage::getSingleton('core/session')->addSuccess($this->__('We Will Contact You Very Soon.'));
}

अब आप एडमिन "Transactional Emails" का उपयोग करके सरल मेल भेज सकते हैं।

अपने your_form.phtml का अनुसरण करें

<form action="<?php echo $this->getUrl("your_module_name/index/sendEnquiry")?>" id="discuss" method="post">

//Your form 

</form>

किस डायरेक्टरी में मुझे कंट्रोलर फाइल को बचाने की जरूरत है
मौनी

आप अपने अपने_मॉडल / कंट्रोलर / इंडेक्सकंट्रोलर में नियंत्रक को बचा सकते हैं। एफपी क्लास और उसके संबंधित फ़ंक्शन को बनाते हैं।
हार्दिक वीजा

क्या मुझे कोई मॉडल या हेल्पर बनाने की आवश्यकता है। कृपया मुझे सुझाव दें कि मैं मैगेंटो के लिए नया हूं
मौनी

आप किसी भी मॉड्यूल कंट्रोलर फ़ाइल में नया फंक्शन जोड़ सकते हैं / बना सकते हैं
हार्दिक वीज़ा

मुझे किस कार्य को जोड़ने की आवश्यकता है
मौनी

2

इस कोड को आज़माएं और उसके अनुसार इसे समायोजित करें

$email_template  = Mage::getModel('core/email_template')
    ->loadDefault($template_id);

/* load template by id */
$email_template_variables = array(
    'customer_name' => $customer_name);

$sender_email = 'Info@yourCompany.com';
$sender_name =  'Your Friend at The Company';                          
$email_template->setSenderName($sender_name);
$email_template->setSenderEmail($sender_email); 

$email_template->send(
    $email_to, $customer_name,$email_template_variables
);

1

UTF-8 मेल के लिए:

$mail = new Zend_Mail('utf-8');
$mail->setFrom($senderEmail, $senderName);
$mail->addTo($toEmail, $toName);
$mail->setSubject($subject);
$mail->setBodyHTML($html); // Or plain: $mail->setBodyText($text)
$mail->send();

0

बेसिक (एक अलग php स्क्रिप्ट में काम करना चाहिए)। यह अपवाद के बिना काम करता था, लेकिन मुझे मेल नहीं मिला। इसलिए मैंने SMTP सेट करने में अधिक समय बिताया।

// do not forget to include Mage.php before that
Mage::app();
// send email
$mail = Mage::getModel('core/email')
 ->setToEmail('<my email>')
 ->setBody('Body')
 ->setSubject('Subject:'.date("Y-m-d H:i:s"))
 ->setFromEmail('<from email>')
 ->setFromName('Magento Store Admin')
 ->setType('html');

$mail->send(); 

आवश्यक शर्तें:

  1. मैगेंटो मेल सेटिंग्स लोकलहोस्ट ( सिस्टम -> कॉन्फ़िगरेशन -> सिस्टम -> मेल भेजने सेटिंग्स ) के लिए सेट

  2. सुनिश्चित करें कि आपका SMTP काम कर रहा है (लोकलहोस्ट पर आप जांच कर सकते हैं, आपको Centnet पर "yum install telnet" टेलनेट स्थापित करने की आवश्यकता हो सकती है)

    telnet localhost 25
    MAIL FROM: <put from mail>
    RCPT TO: <put to mail>
    data: 
    Subject: <put your subject>
    <Put body here>
    . 
    QUIT
  3. यदि यह SMTP कॉन्फ़िगर नहीं कर रहा है। मेरे CentOS पर पोस्टफ़िक्स चल रहा था

     ps aux | grep posfix

मैंने vi के साथ सेटिंग संपादित की:

     vi /etc/postfix/main.cf

मेरे लिए बस myhostname सेटिंग ने काम किया

  1. Php मेल फ़ंक्शन आज़माएँ:

    // The message
    $message = "Line 1\r\nLine 2\r\nLine 3";
    // Send
    $headers = 'From: <from mail>' . "\r\n" .
    'Reply-To: <from mail>' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
    mail('<to mail>', 'My Subject', $message, $headers);    
    echo "<p>php mail sent 3</p>";
  2. पोस्टफ़िक्स के लिए आप मेल कतार टाइपिंग "मेलक" देख सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.