我想了解更多关于在swiftmailer中假脱机电子邮件的信息。 实际上,我使用带有线轴类型内存的swiftmailer:
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
port: "%mailer_port%"
encryption: "%mailer_encryption%"
username: "%mailer_user%"
password: "%mailer_password%"
spool: { type: memory }
我在AJAX中调用的symfony方法中发送这样的电子邮件:
public function ajaxAction(Request $request)
{
if ($request->isXMLHttpRequest()) {
$data = $request->request->get('contact');
$message = \Swift_Message::newInstance()
->setSubject('Contact site')
->setFrom('postmaster@mywebsite.com')
->setTo('contact@mywebsite.com')
->setBody(
$this->renderView(
'MyAppMyBundle:Emails:contact.html.twig',
array('name' => $data['name'], 'mail' => $data['mail'], 'message' => $data['message'])
),
'text/html'
);
$this->get('mailer')->send($message);
return new Response('Mail sent', 200);
}
}
这会导致非常耗时的AJAX调用: 我预计假脱机会在kernel.terminate事件之后发送电子邮件,但它似乎是在kernel.terminate中完成的。所以AJAX调用很长,我没有把假脱机电子邮件带到预期的优势。 你能救我吗?
答案 0 :(得分:2)
如Symfony Docs中所述,基于内存的假脱机程序会在kernel.terminate
事件之前发送电子邮件。
在这种情况下,您可能希望使用基于文件的假脱机,如How to Spool Emails with Symfony文章中所述。