Cómo enviar correos electrónicos personalizados mediante programación en Magento 2

Estás leyendo la publicación: Cómo enviar correos electrónicos personalizados mediante programación en Magento 2

espacio de nombres [Vendor]\[Module]\Ayudante;

use Magento\Framework\App\Helper\Context;

use Magento\Framework\Mail\Template\TransportBuilder;

use Magento\Framework\App\Helper\AbstractHelper;

use Magento\Framework\Translate\Inline\StateInterface;

use Magento\Store\Model\StoreManagerInterface;

clase Datos extiende AbstractHelper

{

protegido $transportBuilder;

protegido $storeManager;

$ traducción en línea protegida;

función pública __construir(

Contexto $contexto,

Constructor de transporte $constructor de transporte,

StoreManagerInterface $storeManager,

EstadoInterfaz $estado

)

{

$this->transportBuilder = $transportBuilder;

$this->storeManager = $storeManager;

$this->inlineTranslation = $estado;

padre::__construcción($contexto);

}

función pública enviarEmail()

{

// este es un ejemplo y puede cambiar la identificación de la plantilla, fromEmail, toEmail, etc. según sus necesidades.

$templateId = ‘my_custom_email_template’; // identificación de la plantilla

$fromName = ‘Administrador’; // nombre del remitente

intentar {

// las variables de la plantilla pasan aquí

$templateVars = [

                ‘msg’ => ‘test’,

                ‘msg1’ => ‘test1’

            ];

$storeId = $this->storeManager->getStore()->getId();

$desde = [’email’ => $fromEmail, ‘name’ => $fromName];

$this->inlineTranslation->suspend();

$storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;

$opciones de plantilla = [

                ‘area’ => \Magento\Framework\App\Area::AREA_FRONTEND,

                ‘store’ => $storeId

            ];

$transporte = $this->transportBuilder->setTemplateIdentifier($templateId, $storeScope)

->establecerTemplateOptions($templateOptions)

->establecerTemplateVars($templateVars)

->establecerDesde($desde)

->addTo($toEmail)

->obtenerTransporte();

$transporte->enviarMensaje();

$this->inlineTranslation->resume();

} atrapar (\Excepción $e) {

$this->_logger->info($e->getMessage());

}

}

}

🔥 Recomendado:  Las 8 mejores aplicaciones de transferencia de dinero para obtener en 2023