ستساعدك المقالة التالية: كيفية إرسال رسائل بريد إلكتروني مخصصة برمجيًا في Magento 2
<؟ php
مساحة الاسم [Vendor]\[Module]\المساعد؛
استخدام Magento \ Framework \ App \ Helper \ Context ؛
استخدام Magento \ Framework \ Mail \ Template \ TransportBuilder ؛
استخدم Magento \ Framework \ App \ Helper \ AbstractHelper ؛
استخدم Magento \ Framework \ Translate \ Inline \ StateInterface ؛
استخدام Magento \ Store \ Model \ StoreManagerInterface ؛
توسّع بيانات الفئة AbstractHelper
{
محمي $ transportBuilder؛
المحمية $ storeManager ؛
المحمية $ inlineTranslation؛
الوظيفة العامة __construct (
سياق $ سياق ،
TransportBuilder $ transportBuilder ،
StoreManagerInterface $ storeManager ،
StateInterface $ state
)
{
$ this-> transportBuilder = $ transportBuilder ؛
$ this-> storeManager = $ storeManager ؛
$ this-> inlineTranslation = $ state؛
الأصل :: __ بناء (سياق $) ؛
}
وظيفة عامة sendEmail ()
{
// هذا مثال ويمكنك تغيير معرف القالب ، من البريد الإلكتروني ، إلى البريد الإلكتروني ، إلخ حسب حاجتك.
$ templateId = ‘my_custom_email_template’؛ // قالب معرف
$ fromName = ‘Admin’؛ // اسم المرسل
يحاول {
// متغيرات القالب تمر هنا
$ templateVars = [
‘msg’ => ‘test’,
‘msg1’ => ‘test1’
]؛
$ storeId = $ this-> storeManager-> getStore () -> getId () ؛
$ من = [’email’ => $fromEmail, ‘name’ => $fromName]؛
$ 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 ($ from)
-> addTo ($ toEmail)
-> getTransport () ؛
$ النقل-> sendMessage () ؛
$ this-> inlineTranslation-> استئناف () ؛
} catch (\ استثناء $ e) {
$ this -> _ logger-> info ($ e-> getMessage ()) ؛
}
}
}