我想用 Symfony Mailer 在一个个人项目里面。我在我的控制器里面做了一个函数send Mail,当表单提交的时候调用这个函数。
function sendEmail(MailerInterface $mailer, $useremail)
{
$email = (new Email())
->from('[email protected]')
->to($useremail)
->subject('Great !')
->htmlTemplate('emails/signup.html.twig');
$mailer->send($email);
return $email;
}
/**
* @Route("/", name="homepage")
*/
public function index(Request $request, MailerInterface $mailer)
{
$mailing = new Mailing();
$form = $this->createForm(MailingType::class, $mailing);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$task = $form->getData();
$this->sendEmail($mailer , $request->request->get('mailing')['email']);
return $this->redirectToRoute('homepage');
}
当我提交表单时,一切正常,但当它进入我的 sendEmail
函数出现以下错误。
试图调用 "Symfony\Component\Mime\Email "类的未定义方法 "htmlTemplate"。
你知道为什么会出现这个错误吗?我不明白发生了什么。
谢谢你。
要使用模板,你需要使用TemplatedEmail,就像在《Symfony Mailer》中描述的那样。文件
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
function sendEmail(MailerInterface $mailer, $useremail)
{
$email = (new TemplatedEmail())
->from('[email protected]')
->to($useremail)
->subject('Great !')
->htmlTemplate('emails/signup.html.twig');
$mailer->send($email);
return $email;
}
你需要使用 "TemplatedEmail "而不是 "Email "类。