मैंने Magento में कुछ इनपुट फ़ील्ड के साथ एक फॉर्म बनाया है। लेकिन जब मैं सबमिट पर क्लिक करता हूं, तो Magento ईमेल नहीं भेजेगा।
मैं Magento में एक बुनियादी ईमेल कैसे भेज सकता हूं?
मैंने Magento में कुछ इनपुट फ़ील्ड के साथ एक फॉर्म बनाया है। लेकिन जब मैं सबमिट पर क्लिक करता हूं, तो Magento ईमेल नहीं भेजेगा।
मैं Magento में एक बुनियादी ईमेल कैसे भेज सकता हूं?
जवाबों:
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('');
}
}
?>
नया टेम्प्लेट फॉर्म "ट्रांसेक्शनल ईमेल" बनाएँ।
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>
इस कोड को आज़माएं और उसके अनुसार इसे समायोजित करें
$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
);
बेसिक (एक अलग 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();
आवश्यक शर्तें:
मैगेंटो मेल सेटिंग्स लोकलहोस्ट ( सिस्टम -> कॉन्फ़िगरेशन -> सिस्टम -> मेल भेजने सेटिंग्स ) के लिए सेट
सुनिश्चित करें कि आपका 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
यदि यह SMTP कॉन्फ़िगर नहीं कर रहा है। मेरे CentOS पर पोस्टफ़िक्स चल रहा था
ps aux | grep posfix
मैंने vi के साथ सेटिंग संपादित की:
vi /etc/postfix/main.cf
मेरे लिए बस myhostname सेटिंग ने काम किया
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>";
पोस्टफ़िक्स के लिए आप मेल कतार टाइपिंग "मेलक" देख सकते हैं