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有更好的文档。非常容易误导和混淆。我不可能在一百万年内从文件中弄清楚这一点。