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());
}
}
}