我希望了解更多有关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调用非常长,我无法享受到邮件池的期望优点。
您能帮忙吗?
bin/console swiftmailer:debug
检查配置。 - Matteo