Skip to content

I am trying to send email using helper class but show the error

TypeError: MagentoEmailModelTemplate::setVars(): Argument #1 ($vars) must be of type array, null given

<?php
namespace CustomScheduleContentNotifierHelper;

use MagentoFrameworkAppHelperContext;
use MagentoFrameworkTranslateInlineStateInterface;
use MagentoFrameworkEscaper;
use MagentoFrameworkMailTemplateTransportBuilder;

class Email extends MagentoFrameworkAppHelperAbstractHelper
{
    protected $inlineTranslation;
    protected $escaper;
    protected $transportBuilder;
    protected $logger;

    public function __construct(
        Context $context,
        StateInterface $inlineTranslation,
        Escaper $escaper,
        TransportBuilder $transportBuilder
    ) {
        parent::__construct($context);
        $this->inlineTranslation = $inlineTranslation;
        $this->escaper = $escaper;
        $this->transportBuilder = $transportBuilder;
        $this->logger = $context->getLogger();
    }

    public function sendEmail()
    {
        try {
            $this->inlineTranslation->suspend();
            $sender = [
                'name' => $this->escaper->escapeHtml('Test'),
                'email' => $this->escaper->escapeHtml('[email protected]'),
            ];
            $transport = $this->transportBuilder
                ->setTemplateIdentifier('content_update_template')
                ->setTemplateOptions(
                    [
                        'area' => MagentoFrameworkAppArea::AREA_FRONTEND,
                        'store' => MagentoStoreModelStore::DEFAULT_STORE_ID,
                    ]
                )
                ->setFrom($sender)
                ->addTo('[email protected]')
                ->getTransport();
            $transport->sendMessage();
            $this->inlineTranslation->resume();
        } catch (Exception $e) {
            $this->logger->debug($e->getMessage());
        }
    }
}