在 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/