Php 尝试使用SwiftMailer通过Gmail发送电子邮件时出错
我正在跟踪从我的控制器发送电子邮件,但我收到一个错误。我确保正确地遵循上面页面中的每个步骤,但没有任何用处 这就是我的控制器的外观:Php 尝试使用SwiftMailer通过Gmail发送电子邮件时出错,php,symfony,swiftmailer,Php,Symfony,Swiftmailer,我正在跟踪从我的控制器发送电子邮件,但我收到一个错误。我确保正确地遵循上面页面中的每个步骤,但没有任何用处 这就是我的控制器的外观: <?php namespace MyBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Component\H
<?php
namespace MyBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;
class DefaultController extends Controller
{
/**
* @Route("/")
*/
public function indexAction(\Swift_Mailer $mailer)
{
$message = (new \Swift_Message('Hello Email'))
->setFrom('send@example.com')
->setTo('my.address@gmail.com')
->setBody(
$this->renderView(
// app/Resources/views/Emails/registration.html.twig
'MyBundle::Emails/registration.html.twig',
array('name' => 'John Doe')
),
'text/html'
);
$mailer->send($message);
return new Response('<html<body>Sent</body></html>');
}
}
我想,您不能在项目设置中启用自动布线。因此,Swift\u Mailer
不会自动注入。启用它或手动注入邮件服务
查看Symfony中有关自动布线的更多信息。只需从构造函数中删除$mailer
(您不在服务中,您在控制器中),然后使用$this->get('mailer')->send($message)要发送的代码>
。(同样,您在一个控制器中,可以访问邮件服务,无需尝试将其注入构造函数)谢谢您的回答,但后面的反斜杠不就是为了这样做吗?此外,在您的链接上,它表示默认情况下启用了自动布线,那么我可以在哪里(以及如何)检查您是否正确?最后,我似乎找不到自动布线示例和我的控制器之间的类比。您能提供一个示例代码吗?这里不需要自动连线,您在一个控制器中(扩展Symfony\Bundle\FrameworkBundle\controller\controller),因此您已经可以访问容器,以及所有services@SamJanssens首先,我认为显式定义比调用服务定位器好。第二,在我的回答中,我写了关于手动解析服务的内容。第三,我认为topicstarter的Symfony<3.3,但请参阅3.3的文档非常感谢您,这位员工。伙计,我希望Symfony有更好的文档。非常容易误导和混淆。我不可能在一百万年内从文件中弄清楚这一点。