[英]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.