Email template 'custom_mail_template' is not defined
-
14-04-2021 - |
سؤال
I'm trying to send mail from my custom module. For this I have created system.xml
file, but it's returning error.
Error:
Email template 'custom_mail_template' is not defined.
my code is:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="custom" translate="label" sortOrder="1">
<label>custom mail</label>
</tab>
<section id="custom" translate="label" type="text" sortOrder="100" showInDefault="1" showInWebsite="1" showInStore="1">
<label>custom mail</label>
<tab>custom</tab>
<resource>Learning_Custom::config_custom</resource>
<group id="mail" translate="label" type="text" sortOrder="1" showInDefault="1" showInWebsite="0" showInStore="0">
<label>Custom</label>
<field id="active" translate="label" type="select" sortOrder="0" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Enabled</label>
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
</field>
<field id="template" translate="label comment" type="select" sortOrder="2" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Email Template</label>
<comment>Email template chosen based on theme fallback when "Default" option is selected.</comment>
<source_model>Magento\Config\Model\Config\Source\Email\Template</source_model>
</field>
</group>
</section>
</system>
</config>
Any suggestions will appreciate.
المحلول
You need create file email_templates.xml
in etc
folder with content:
<?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="custom_mail_template" label=" Your Custom Label" file="yourfile.html" type="html" module="Vendor_YourModule" area="frontend"/>
</config>
This file using declare template have id custom_mail_template
in Configuration with path of template file you want use.
After, you create template email file yourfile.html
in path Vendor/YourModule/view/frontend/email/yourfile.html
I hope it help for you.
نصائح أخرى
I face the same problem when I use a custom email template and its resolved by the following changes.
If you check your system.xml file you can find that you path for system config for email template is created based upon that. In simple terms, email template-id is created upon sectionid_groupid_fieldid.
Here it is custom_mail_template
.