如何在Magento2自定义电子邮件模板中添加Bcc?

3
我正在使用以下代码发送邮件。邮件正常工作,但Bcc和Cc不起作用。请告诉我如何设置Bcc和Cc。
 class Dummy
{

    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('someemail@email.com')
            ->addTo('toemail@email.com')
            ->setReplyTo('replyto@email.com')
            ->addBcc('bcc@email.com')
            ->getTransport();
        $transport->sendMessage();
    }

}

提前感谢您。

2个回答

0

`if($custom_email){

$this->transportBuilder->addBcc($custom_email); // 用于添加自定义动态电子邮件地址的密送

}`

这是更新后的代码:

$transport = $this->_transportBuilder->setTemplateIdentifier($templateId)
        ->setTemplateOptions(['area' => Magento\Framework\App\Area::AREA_FRONTEND, 'store' => $storeId])
        ->setTemplateVars($templateParams)
        ->setFrom('someemail@email.com')
        ->addTo('toemail@email.com')
        ->setReplyTo('replyto@email.com')
        ->addBcc('bcc@email.com')
        ->getTransport();
    $transport->sendMessage();

0
我们可以使用以下方法向任何电子邮件添加密送/抄送。
创建一个插件。
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\Mail\Template\TransportBuilder">
      <plugin name="custom_welcome_email_bcc" type="Vendor\ModuleMane\Plugin\TransportBuilderPlugin" sortOrder="10"/>
    </type>
</config>

创建插件文件
<?php
namespace Vendor\ModuleName\Plugin;

class TransportBuilderPlugin
{
    protected $scopeConfig;
    
    public function __construct(
        \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
        \Psr\Log\LoggerInterface $logger
    ) {
        $this->scopeConfig = $scopeConfig;
        $this->logger = $logger;
    }

    public function beforeSetTemplateIdentifier(
        \Magento\Framework\Mail\Template\TransportBuilder $subject,
        $templateIdentifier
    ) {
        $bccEmail = $this->scopeConfig->getValue('trans_email/ident_custom2/email');
        if( $templateIdentifier == 'customer_create_account_email_template') {
          if (!empty($bccEmail)) {
            $subject->addBcc($bccEmail);
          }
        }
        return [$templateIdentifier];
    }
}

这里的customer_create_account_email_template是电子邮件模板代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接