给自定义邮箱发送订单邮件

本文展示了在 Magento2 中如何用代码给自定义邮箱发送订单邮件。

概览

  • 第一步,设置邮件格式

  • 第二步,设置控制器文件

第一步,设置邮件格式

设置邮件格式的 input ,如下:

<form id="send-order-email" action="<?php $block->getUrl('helloworld/order/sendemail'); ?>">
    <label>Email Address</label>
    <input type="text" class="input-text" id="email">
</form>

设置控制器文件

路径:app\code\Mageplaza\HelloWorld\Controller\Order\Email

添加 app\code\Mageplaza\HelloWorld\Controller\Order\Email 这个文件,它是基于 \Magento\Framework\App\Action\Action 这个类。此文件处理上面提交过来的类型,但是首先,添加一下代码:

public function execute()
    {
        $email = $this->getRequest()->getParam('email');
        $order = $this->_objectManager->create('Magento\Sales\Model\Order')->load(1); // this is entity id
        $order->setCustomerEmail($email);
        if ($order) {
            try {
                $this->_objectManager->create('\Magento\Sales\Model\OrderNotifier')
                    ->notify($order);
                $this->messageManager->addSuccess(__('You sent the order email.'));
            } catch (\Magento\Framework\Exception\LocalizedException $e) {
                $this->messageManager->addError($e->getMessage());
            } catch (\Exception $e) {
                $this->messageManager->addError(__('We can\'t send the email order right now.'));
                $this->_objectManager->create('Magento\Sales\Model\OrderNotifier')->critical($e);
            }
        }
    }

本教程翻译自Mageplaza模块开发系列,其他内容请点击下面链接: