不调用自动钩子((ON_SENT_EMAIL_TO_USER)

问题描述 投票:0回答:1

我正在编写一个插件,该插件应在发送给最终用户的电子邮件中添加(动态)附件。但是我只能坚持一件事。

首先,我使用EMAIL_ON_SEND钩子将附件添加到电子邮件中。但是似乎每次调用时都会在每封电子邮件中添加附件。

每封电子邮件都会被调用两次。因此,在第一封邮件中,它将添加2个附件,第二封邮件中将添加4个附件,依此类推。

第二种方法是使用ON_SENT_EMAIL_TO_USER钩子。但是似乎没有在发送电子邮件(分段中)之前调用此邮件。

class EmailSubscriber extends CommonSubscriber
{
    protected $helper;

    public function __construct(IntegrationHelper $helper)
    {
        $this->helper = $helper;
        $this->parser = new ApiParser();
    }

    /**
     * @return array
     */
    public static function getSubscribedEvents()
    {
        return [
          //  EmailEvents::EMAIL_ON_SEND => ['onEmailSend', 100],
            EmailEvents::ON_SENT_EMAIL_TO_USER => ['onEmailSend', 100],
        ];
    }

    /**
     * Search and replace tokens with content
     *
     * @param EmailSendEvent $event
     */

    public function onEmailSend(EmailSendEvent $event)
    {
        error_log('123');
    }

有时,我必须关注发送电子邮件而不是事件(?)的实际操作。但我不知道哪一个

php mautic
1个回答
0
投票

我无法直接回答,但也许可以为您提供一些有用的资源!

[首先,您是尝试将电子邮件发送给Mautic用户(例如潜在客户的管理员或所有者)还是潜在客户?只是想仔细检查一下,我们正在寻找正确的东西,因为它们经常被混淆!

这还取决于您要执行的操作,附加当前不属于Mautic的文件(例如,发票或类似内容),或者是否要附加要跟踪的文件Mautic作为资产。

就附件而言,开发者文档中的这些资源可能很有用:

它引用了attachFile(),但是还有attachAsset(),它允许您附加已经上传的Mautic资产(\ Mautic \ AssetBundle \ Entity \ Asset)。

您可能还想看看https://forums.mautic.org,在那里社区中可能会有更多的开发人员能够提供进一步的见解!

© www.soinside.com 2019 - 2024. All rights reserved.