Cómo adjuntar mediante programación un archivo PDF en el correo electrónico de Magento 2

Estás leyendo la publicación: Cómo adjuntar mediante programación un archivo PDF en el correo electrónico de Magento 2

espacio de nombres Proveedor\Extensión\Ayudante;

use Magento\Cliente\Modelo\Sesión;

Los datos de clase se extienden \Magento\Framework\App\Helper\AbstractHelper

{

const XML_PATH_EMAIL_DEMO = ’emaildemo/email/email_demo_template’;

protegido $_inlineTranslation;

protegido $_transportBuilder;

protegido $_template;

protegido $_storeManager;

función pública __construir(

\Magento\Framework\App\Helper\Contexto $contexto,

\Magento\Framework\Translate\Inline\StateInterface $inlineTranslation,

\Proveedor\Extensión\Modelo\Correo\TransportBuilder $transportBuilder,

\Magento\Tienda\Modelo\StoreManagerInterface $storeManager

)

{

$this->_objectManager = $objectManager;

padre::__construcción($contexto);

$this->_inlineTranslation = $inlineTranslation;

$this->_transportBuilder = $transportBuilder;

$this->_storeManager = $storeManager;

}

función pública generar Plantilla ()

{

$pdfFile = ‘pdf_file_path/email.pdf’;

$emailTemplateVariables[‘message’] = ‘Este es un mensaje de prueba de meetanshi.’;

// carga tu plantilla de correo electrónico

$this->_template = $this->scopeConfig->getValue(

yo::XML_PATH_EMAIL_DEMO,

\Magento\Store\Model\ScopeInterface::SCOPE_STORE,

$this->_storeManager->getStore()->getStoreId()

);

$this->_inlineTranslation->suspend();

$this->_transportBuilder->setTemplateIdentifier($this->_template)

->establecerOpcionesPlantilla(

[

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

                        ‘store’ => $this->_storeManager->getStore()->getId(),

                    ]

)

->establecerTemplateVars($emailTemplateVariables)

->establecerDesde([

                    ‘name’ => ‘Meetanshi’,

                ])

->addAttachment(file_get_contents($pdfFile)); //El archivo adjunto va aquí.

intentar {

$transporte = $this->_transportBuilder->getTransport();

$transporte->enviarMensaje();

$this->_inlineTranslation->resume();

} atrapar (\Excepción $e) {

echo $e->getMessage(); morir;

}

}