在 CakePHP 4 中使用自定义电子邮件传输时如何获取自定义变量,用于发送带有邮戳的批量邮件

How to get custom variables when using a custom Email Transport with CakePHP 4, for sending bulk mails with Postmark

提问人:DvL 提问时间:4/24/2023 更新时间:4/24/2023 访问量:40

问:

我想使用 Postmark Batch API 发送群发邮件(新闻稿)。Postmark Batch API 要求我每个请求最多合并 500 封邮件。

因此,我创建了一个自定义项,用于处理 API 调用并设置批处理请求。目前为止,一切都好。NewslettersTransport.php

邮件的内容应该是个性化的。我正在寻找一种方法来在此 Transport 方法中执行此操作,但我无法访问我的 ViewVars 设置NewsletterMailer.php

我正在寻找一种不同的逻辑或一种访问 ViewVars/自定义消息正文的方法。

// NewsletterMailer.php

return $this
    ->setEmailFormat('html')
    ->setTo($subscribers->all()->toArray())
    ->setFrom([$newsletter->sender => $company->companyname])
    ->setSubject($newsletter->name)
    ->setProfile('newsletter')
    ->setViewVars([
        'company' => $company
    ])
    ->viewBuilder()
    ->setTemplate('newsletter_mail')
    ->setLayout('default');
php cakephp-4.x 邮戳

评论

0赞 ndm 4/25/2023
为什么要在传输中进行自定义?AFAICT 邮戳需要完整的电子邮件正文,没有占位符或类似的东西,即您只需使用电子邮件模板中的变量!?
0赞 DvL 5/1/2023
我没有,但我找不到正确的解决方案。这就是为什么我一直在寻找不同的逻辑。但与此同时,我发现文档做得更好:book.cakephp.org/4/en/core-libraries/...... $transport = new \Cake\Mailer\Transport\MailTransport(); $result = $transport->sendBatch($messages);

答: 暂无答案