本文展示了在 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);
}
}
}