php - 使用 Symfony Mailer 时如何获取电子邮件 ID?

标签 php symfony email laravel-9 symfony-mailer

在 Laravel 9 项目中,我使用动态 SMTP 设置:

$transport = Transport::fromDsn("smtp://$department->email:$department->smtp_password@$department->smtp_host:$department->smtp_port");
$mailer = new Mailer($transport);

$email = (new Email())
            ->subject($request->email_subject)
            ->from($department->email)
            ->to($request->email_reply_to)
            ->html($request->body);

$headers = $email->getHeaders();

$mailer->send($email);

但是我无法获取消息的 ID。之前,当 Laravel 使用 Swift_Mailer 时,我可以这样做:

$email->getId()

但现在我得到:

Call to undefined method Symfony\Component\Mime\Email::getId()

那么如何获取消息的 ID 呢?

编辑:因此,为了获取 MessageId,我必须首先获取 SentMessage 对象,然后在该对象中我可以访问 getMessageId 方法。

现在的问题是,如何获取SentMessage对象?

$mailer->send($email) 返回 null

最佳答案

https://github.com/symfony/symfony/pull/38517提供了一个提示:不要使用 Mailer,而是使用 Transport 本身。手动创建时,Mailer 类本身除了在传输上调用 send 之外,并没有做更多的事情。

$transport = Transport::fromDsn("smtp://$department->email:$department->smtp_password@$department->smtp_host:$department->smtp_port");

$email = (new Email())
            ->subject($request->email_subject)
            ->from($department->email)
            ->to($request->email_reply_to)
            ->html($request->body);

$headers = $email->getHeaders();

$sentMessage = $transport->send($email);

关于php - 使用 Symfony Mailer 时如何获取电子邮件 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73632087/

相关文章:

带有计分功能的 PHP 问答游戏

php - 检查记录是否成功插入 Symfony2

Symfony2在实体存储库中获取用户ID

java - 如何使用 X-Unsent : 1 using Message. writeTo 将电子邮件保存为 .eml

android - 将可绘制图像附加到android中的电子邮件

php - 升级 sagepay 表格 2.23 到 3.0

php - 如何在php中多次提交生成pdf

php - 尝试启动 MySQL 应用程序

php - Symfony2/Twig - 从动态数组键获取数组

java 通过雅虎发送电子邮件