Saya telah membuat formulir dengan beberapa bidang input di Magento. Tetapi ketika saya klik kirim, Magento tidak akan mengirim email.
Bagaimana saya bisa mengirim email dasar di Magento?
Saya telah membuat formulir dengan beberapa bidang input di Magento. Tetapi ketika saya klik kirim, Magento tidak akan mengirim email.
Bagaimana saya bisa mengirim email dasar di Magento?
Jawaban:
fungsi sederhana untuk mengirim email di 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('');
}
}
?>
Buat Formulir Template Baru "Email Transaksional".
hello {{var customerName}},
You received test template.
Thank you
Setelah membuat Template Baru Catat ID- nya
Buat aksi pengontrol
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.'));
}
Sekarang Anda dapat mengirim surat sederhana menggunakan Admin "Email Transaksional".
Mengikuti your_form.phtml Anda
<form action="<?php echo $this->getUrl("your_module_name/index/sendEnquiry")?>" id="discuss" method="post">
//Your form
</form>
Coba kode ini dan sesuaikan
$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
);
Basic (harus bekerja dalam skrip php terpisah). Itu bekerja tanpa kecuali, tetapi saya tidak menerima email. Jadi saya menghabiskan lebih banyak waktu untuk mengatur 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();
Prasyarat:
Pengaturan surat Magento diatur ke localhost ( Sistem -> Konfigurasi -> Sistem -> Pengaturan Pengiriman Surat )
Pastikan SMTP Anda berfungsi (di localhost Anda dapat memeriksa, Anda mungkin perlu menginstal telnet "yum install telnet" di CentOS)
telnet localhost 25
MAIL FROM: <put from mail>
RCPT TO: <put to mail>
data:
Subject: <put your subject>
<Put body here>
.
QUIT
Jika tidak berfungsi, konfigurasikan SMTP. Ada postfix yang berjalan di CentOS saya
ps aux | grep posfix
Saya mengedit pengaturan dengan vi:
vi /etc/postfix/main.cf
pengaturan hanya myhostname bekerja untuk saya
Coba fungsi surat 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>";
Untuk postfix Anda dapat melihat antrian surat mengetik "mailq"