簡體   English   中英

嘗試使用SwiftMailer通過Gmail發送電子郵件時出錯

[英]Error trying to send email through Gmail using SwiftMailer

我正在關注Symfony 3 Documentation以從我的控制器發送電子郵件,但是我收到了一個錯誤。 我確保正確地按照上面的每一步,但沒有用。

這就是我的控制器的樣子:

<?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>');
    }
}

這是我得到的錯誤:

控制器“MyBundle \\ Controller \\ DefaultController :: indexAction()”要求您為“$ mailer”參數提供值。 參數可以為空,並且沒有提供空值,沒有提供默認值,或者因為在此之后存在非可選參數。

與文檔頁面相比,我很確定一切都應該如此,所以有人可以幫我找到這個錯誤的來源嗎?

只需從構造函數中刪除 $mailer (您不在服務中,您在控制器中),並使用$this->get('mailer')->send($message); 發送 (再次,您在控制器中,您可以訪問郵件服務,無需嘗試將其注入構造函數)

我想,你不能在項目設置中啟用autowiring 因此, Swift_Mailer不會自動注入。 啟用它或手動注入郵件服務。

此處查看有關Symfony中自動裝配的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM