Magento'da bazı girdi alanları olan bir form oluşturdum. Ancak gönder'i tıkladığımda Magento e-postayı göndermeyecek.
Magento'da nasıl temel bir e-posta gönderebilirim?
Magento'da bazı girdi alanları olan bir form oluşturdum. Ancak gönder'i tıkladığımda Magento e-postayı göndermeyecek.
Magento'da nasıl temel bir e-posta gönderebilirim?
Yanıtlar:
magento e-posta göndermek için basit bir işlev
<?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('');
}
}
?>
Yeni İşlem Formu "İşlem E-postaları" oluşturun.
hello {{var customerName}},
You received test template.
Thank you
Yeni Şablon oluşturduktan sonra kimliği
Denetleyici eylemi oluştur
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.'));
}
Artık Yönetici "İşlem E-postaları" nı kullanarak basit postalar gönderebilirsiniz.
Your_form.phtml sayfanızı Takip Edin
<form action="<?php echo $this->getUrl("your_module_name/index/sendEnquiry")?>" id="discuss" method="post">
//Your form
</form>
Bu kodu deneyin ve uygun şekilde ayarlayın
$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
);
Temel (ayrı bir php betiğinde çalışmalıdır). İstisnasız çalıştı, ancak posta almadım. Bu yüzden SMTP'yi ayarlamak için daha fazla zaman harcadım.
// 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();
Ön şartlar:
Magento posta ayarları localhost olarak ayarlandı ( Sistem -> Yapılandırma -> Sistem -> Posta Gönderme Ayarları )
SMTP'nizin çalıştığından emin olun (kontrol edebileceğiniz localhost üzerinde, CentOS'a telnet "yum install telnet" yüklemeniz gerekebilir)
telnet localhost 25
MAIL FROM: <put from mail>
RCPT TO: <put to mail>
data:
Subject: <put your subject>
<Put body here>
.
QUIT
Çalışmıyorsa SMTP'yi yapılandırın. CentOS'umda postfix çalışıyor
ps aux | grep posfix
Ayarları vi ile düzenledim:
vi /etc/postfix/main.cf
sadece myhostname ayarlaması benim için çalıştı
Php posta işlevini deneyin:
// 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>";
Postfix için "mailq" yazarak posta sırasını görüntüleyebilirsiniz