Cách gửi email bằng Magento


16

Tôi đã tạo một biểu mẫu với một số trường đầu vào trong Magento. Nhưng khi tôi nhấp vào gửi, Magento sẽ không gửi email.

Làm cách nào tôi có thể gửi email cơ bản trong Magento?


Tôi có cần tạo một mô-đun riêng trong thư mục app / code / local /.
Mouni

Tại sao không phải là một người nói tiếng Anh bản địa và viết các hướng dẫn phức tạp với các điều kiện tiên quyết lỗi chính tả để làm chủ Magento ???
Spencer Williams

1
Không có @SpencerWilliams "Nó có lý do kéo"
Ejaz

Câu trả lời:


35

chức năng đơn giản để gửi email trong 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('');
        }
    }
?>

Tài liệu tham khảo


Trong thư mục nào tôi cần đặt mã ở trên. Bạn có thể đề nghị tôi.
Mouni

bạn có thể thêm vào tệp điều khiển, trình trợ giúp hoặc chặn nơi bạn muốn ..
Qaisar Satti

Tôi đã không tạo ra bất kỳ người trợ giúp hoặc mô hình nào, sau đó làm thế nào tôi có thể sử dụng nó. Xin vui lòng giải thích
Mouni

sau đó thêm chức năng này vào tệp phtml của bạn và gửi thư từ đó ..
Qaisar Satti

Tôi có thể sử dụng biến như $ mail-> setToName ($ name). Nó có hoạt động không.
Mouni

5

Tạo mẫu mới "Email giao dịch".

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

Sau khi tạo Mẫu mới Lưu ý ID của nó

Tạo hành động điều khiển

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.'));
}

Bây giờ bạn có thể gửi thư đơn giản bằng cách sử dụng "Email giao dịch" của quản trị viên.

Theo dõi your_form.phtml của bạn

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

//Your form 

</form>

Trong thư mục nào tôi cần lưu tệp điều khiển
Mouni

bạn có thể lưu bộ điều khiển trong lớp tạo your_module / controller / IndexContoder.php của bạn và chức năng liên quan của nó.
Visa Hardik

Tôi có cần tạo bất kỳ mô hình hoặc người trợ giúp nào không. Xin vui lòng gợi ý cho tôi Tôi mới biết về magento
Mouni

bạn có thể thêm / tạo chức năng mới trong bất kỳ tệp điều khiển mô-đun nào
Hardik Visa

Tôi cần thêm chức năng gì
Mouni 6/10/2015

2

Hãy thử mã này và điều chỉnh nó cho phù hợp

$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

Đối với thư 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

Basic (nên hoạt động trong một tập lệnh php riêng). Nó hoạt động mà không có ngoại lệ, nhưng tôi không nhận được thư. Vì vậy, tôi đã dành nhiều thời gian hơn để thiết lập 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(); 

Điều kiện tiên quyết:

  1. Cài đặt thư Magento được đặt thành localhost ( Hệ thống -> Cấu hình -> Hệ thống -> Cài đặt gửi thư )

  2. Đảm bảo rằng SMTP của bạn hoạt động (trên localhost mà bạn có thể kiểm tra, bạn có thể cần cài đặt telnet "yum install telnet" trên CentOS)

    telnet localhost 25
    MAIL FROM: <put from mail>
    RCPT TO: <put to mail>
    data: 
    Subject: <put your subject>
    <Put body here>
    . 
    QUIT
  3. Nếu nó không hoạt động cấu hình SMTP. Có postfix chạy trên CentOS của tôi

     ps aux | grep posfix

Tôi đã chỉnh sửa cài đặt bằng vi:

     vi /etc/postfix/main.cf

chỉ thiết lập myhostname cho tôi

  1. Hãy thử chức năng thư 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. Đối với postfix, bạn có thể xem hàng đợi thư gõ "mailq"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.