Magento2- Отправка пользовательских транзакционных электронных писем
Как это сделано в Magento 1.x.x, как можно отправлять пользовательские транзакционные электронные письма.
Дополнительные
Добавить электронную почту в bcc
Отправить вложение по электронной почте
3 answers
О'кей, немного отладки помогает,
Отправка транзакционного электронного письма в Magento2
class Dummy
{
/**
* @var \Magento\Framework\Mail\Template\TransportBuilder
*/
private $_transportBuilder;
public function __construct( \Magento\Framework\Mail\Template\TransportBuilder $transportBuilder){
$this->_transportBuilder = $transportBuilder;
}
public function sendEmail($templateId =1, $storeId =1,$templateParams)
{
$transport = $this->_transportBuilder->setTemplateIdentifier($templateId)
->setTemplateOptions(['area' => Magento\Framework\App\Area::AREA_FRONTEND, 'store' => $storeId])
->setTemplateVars($templateParams)
->setFrom('[email protected]')
->addTo('[email protected]')
->setReplyTo('[email protected]')
->addBcc('[email protected]')
->getTransport();
$transport->sendMessage();
}
}
Magento 2 Использует \Magento\Framework\Почта\Шаблон\Transportbuilder класс для отправки пользовательских сообщений электронной почты.
Вам нужно создать простой модуль и установить email_tempaltes.xml файл для определения шаблонов почты транзакций.
Вы можете отправлять почту из Adminhtml или области видимости интерфейса.
Я поделился ссылкой для пошагового руководства по отправке пользовательской почты из Magento 2 с помощью модуля.
Это работает на меня
$emailTemplateVariables = array();
$emailTempVariables['myvar'] = $myvar;
$senderName = 'test';
$senderEmail = '[email protected]';
$postObject = new \Magento\Framework\DataObject();
$postObject->setData($emailTempVariables);
$sender = [
'name' => $senderName,
'email' => $senderEmail,
];
$transport = $this->_transportBuilder->setTemplateIdentifier('myemail_email_template')
->setTemplateOptions(['area' => \Magento\Framework\App\Area::AREA_FRONTEND, 'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID])
->setTemplateVars(['data' => $postObject])
->setFrom($sender)
->addTo($email)
->setReplyTo($senderEmail)
->getTransport();
$transport->sendMessage();
Дополнительная информация
Как отправить пользовательское электронное письмо без шаблона в magento2?