几天后我无法使用Symfony和Swiftmailer发送电子邮件,但我使用的是文档中的代码
private function _sendResetPasswordEmail(UserInterface $user)
{
$subject = $this->get('translator')->trans('email-title-reset-password');
$message = \Swift_Message::newInstance()
->setSubject($subject)
->setFrom('contact@example.com')
->setTo($user->getEmail())
->setBody(
$this->renderView(
'reset-password-email.html.twig',
['user' => $user]
),
'text/html'
)
;
$this->get('mailer')->send($message);
}
以前它曾经工作
现在我可以在日志中看到
"Attempted to call an undefined method named "newInstance" of class "Swift_Message"
可能会发生什么变化?
答案 0 :(得分:22)
实际上在发布问题并链接到文档时,我很惊讶地看到它已更新
现在是
$message = (new \Swift_Message('Hello Email'))
而不是
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
自根据changelog发布swiftmailer6
https://github.com/swiftmailer/swiftmailer/blob/master/CHANGES#L24
遗憾的是没有“弃用”期。
答案 1 :(得分:1)
@ allan.simon答案是正确的,但可能更简单。
可以,但无需将$subject
传递到__constructor
。
之前
$message = \Swift_Message::newInstance()
现在
$message = (new \Swift_Message())