在这篇博文中,向您介绍如何使用自定义代码将订单电子邮件发送到Magento 2中的自定义电子邮件地址。本主题将通过以下两个步骤涵盖所有必要的操作。

将订单电子邮件发送到 Magento 2 中的自定义电子邮件地址的 2 个步骤

  • 第一步:设置邮件格式
  • 第二步:设置控制器文件

第一步:设置邮件格式

使用输入字段行设置电子邮件的格式如下:

<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>

第2步:设置控制器文件

文件路径:app\code\Example\HelloWorld\Controller\Order\Email

app\code\Example\HelloWorld\Controller\Order\Email添加基于 class 的文件\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);
            }
        }
    }