Magento 2用代码发送邮件
Magento 2用代码发送邮件
首先,在 NameSpace/ModuleName/etc/adminhtml/system.xml 文件中的section 和 group创建配置字段,如下所示:
然后在后台 MARKETING - Communications - Email Templates 里创建一个邮件模板,名字叫email_template_field_id
,在那里我们可以选择使用哪个电子邮件模板。
在模块的 etc/
目录下创建一个电子邮件模板配置文件,文件名是email_templates.xml
在 view/frontend/email 目录下创建电子邮件模板文件,作为email_template.xml
文件中指定的名称。在这里,我们将使用 email_template.html
名称作为电子邮件模板。其中第一行的@subject后面的内容为发送邮件的标题。$myvar1,$myvar2……是向邮件模版传递的变量,通过数组的形式传递。
现在模板已经准备好了,我们在需要发送邮件的地方添加以下代码,其中$receiverInfo 和 $senderInfo 分别为收件人和发件人的地址。
我们创建一个助手函数来实现邮件发送功能。文件名 Helper/Email.php
邮件模板循环数组变量
创建 view/layout/order_items.xml 文件,
创建 view/templates/order_items.phtml 文件,
<?php $items = $block->getItems() ?> <table class="email-items"> <thead> <tr> <th class="item-id"> <?= /* @escapeNotVerified */ __('ID'); ?> </th> <th class="item-name"> <?= /* @escapeNotVerified */ __('Name'); ?> </th> <th class="item-sku"> <?= /* @escapeNotVerified */ __('Sku'); ?> </th> <th class="item-qty"> <?= /* @escapeNotVerified */ __('Quantity'); ?> </th> <th class="item-date"> <?= /* @escapeNotVerified */ __('Date'); ?> </th> </tr> </thead> <tbody> <?php foreach ($items as $item): ?> <tr> <td><?php echo $item->getData('entity_id'); ?></td> <td><?php echo $item->getData('name'); ?></td> <td><?php echo $item->getData('sku'); ?></td> <td><?php echo (int)$item->getData('qty'); ?></td> <td><?php echo $item->getData('updated_at'); ?></td> </tr> <?php endforeach; ?> </tbody> </table>
如有问题请留言,谢谢。