<h5 style="color:red;">系统学习magento二次开发,推荐小册:<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">《Magento中文全栈二次开发
》</a></h5>
<div class="image-container">
<p>
<a style="color:blue;" href="https://www.maxiaoke.com/manual/magento_cn_dev.html" target="_blank">
<img src="https://www.maxiaoke.com/uploads/images/20230218/bb9c82995c24d1105676e02f373755f5.jpg" alt="Magento中文全栈二次开发">
</a>
</p>
</div>
<div class="text-container" style="font-size:14px; color:#888">
<p>本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。</p>
</div>
<hr><p>在Magento 2中设置动态电子邮件主题的步骤:</p><p>步骤 1:在以下路径创建电子邮件模板配置文件</p><p>app\code\Vendor\Extension\etc\email_templates.xml</p><p>然后添加以下代码</p><pre class="brush:bash;toolbar:false"><?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Email:etc/email_templates.xsd">
<template id="your_email_template_id" label="Label of your template file" file="email_file.html" type="html" module="Vendor_Extension" area="frontend"/>
</config></pre><p>步骤2:现在在以下路径创建电子邮件模板文件</p><p>app\code\Vendor\Extension\view\frontend\email\email_file.html</p><p>现在添加以下代码片段</p><pre class="brush:bash;toolbar:false"><!--@subject {{var subject|raw }}@-->
<!--@vars
{"var customerName":"Customer Name",
"var customerEmail":"Customer Email",
"var customerComment":"Comment"}
@-->
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
<table cellspacing="0" cellpadding="0" border="0" height="100%" width="100%">
<tr>
<td align="center" valign="top" style="padding:20px 0 20px 0">
<table bgcolor="FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
<tr>
<td valign="top" colspan="5">
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;">Hello Admin,</h1>
</td>
</tr>
<tr>
<td valign="top" colspan="5">
<p style="border:1px solid #E0E0E0; font-size:12px; line-height:16px; margin:0; padding:13px 18px; background:#F9F9F9;">You Have Received New Query As Bellow.<p>
</td>
</tr>
<tr>
<td valign="top" colspan="5">
<p style="border:1px solid #E0E0E0; font-size:12px; line-height:16px; margin:0; padding:13px 18px; background:#F9F9F9;">Customer Name : <strong>{{var customerName}}</strong></td>
</tr>
<tr>
<td valign="top" colspan="5">
<p style="border:1px solid #E0E0E0; font-size:12px; line-height:16px; margin:0; padding:13px 18px; background:#F9F9F9;">Customer Email : <strong>{{var customerEmail}}</strong></td>
</tr>
<tr>
<td valign="top" colspan="5">
<p style="border:1px solid #E0E0E0; font-size:12px; line-height:16px; margin:0; padding:13px 18px; background:#F9F9F9;">Customer Comment : <strong>{{var customerComment}}</strong></td>
</tr>
<tr>
<td valign="top" colspan="5">
<p style="border:1px solid #E0E0E0; font-size:12px; line-height:16px; margin:0; padding:13px 18px; background:#F9F9F9; text-align:center;"><strong>Thank you.</strong></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body></pre><p>步骤3:现在模板已准备就绪,我们将编写发送邮件的代码。</p><p>转到控制器文件</p><p>app\code\Vendor\Extension\Controller\Index\Index.php</p><p>添加下面提到的代码</p><pre class="brush:bash;toolbar:false"><?php
namespace Vendor\Extension\Controller\Index;
use Magento\Framework\App\Action\Context;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Framework\Mail\Template\TransportBuilder;
use Magento\Framework\Translate\Inline\StateInterface;
class Index extends \Magento\Framework\App\Action\Action
{
protected $transportBuilder;
protected $storeManager;
protected $inlineTranslation;
protected $state;
public function __construct(
Context $context,
StoreManagerInterface $storeManager,
TransportBuilder $transportBuilder,
StateInterface $state)
{
$this->transportBuilder = $transportBuilder;
$this->storeManager = $storeManager;
$this->inlineTranslation = $state;
parent::__construct($context);
}
public function execute()
{
$templateId = 'your_email_template_id'; // template id
$fromEmail = 'admin@gmail.com'; // sender Email id
$toEmail = 'test.magecomp@gmail.com'; // receiver email id
$subject = 'your_dynamic_subject'; // Dynamic subject
try
{
// template variables pass here
$templateVars = [
'subject' => $subject,
'customerName' => 'Test',
'customerEmail' => 'Magecomp',
'customerComment' => 'Test Comment'
];
$storeId = $this->storeManager->getStore()->getId();
$this->inlineTranslation->suspend();
$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;
$templateOptions = [
'area' => \Magento\Framework\App\Area::AREA_FRONTEND,
'store' => $storeId
];
$transport = $this->transportBuilder->setTemplateIdentifier($templateId, $storeScope)
->setTemplateOptions($templateOptions)
->setTemplateVars($templateVars)
->setFrom($fromEmail)
->addTo($toEmail)
->getTransport();
$transport->sendMessage();
$this->inlineTranslation->resume();
$this->messageManager->addSuccessMessage(__('Your Email Sent successfully'));
$this->_redirect('*/*/');
}
catch (\Exception $e)
{
$this->inlineTranslation->resume();
$this->messageManager->addErrorMessage(__('We can\'t process your request' . $e->getMessage()));
$this->_redirect('*/*/');
}
}
}</pre><p>结论:</p><p>这样,您可以在Magento 2中设置动态电子邮件主题,并提高电子邮件营销活动的打开率。</p><p><br/></p>