我如何在symfony 4中使用sendgrid API

时间:2019-05-20 14:04:28

标签: symfony4 sendgrid sendgrid-api-v3

我需要帮助将sendgrid嵌入我的symfony 4项目中。 我安装了https://github.com/expertcoder/SwiftmailerSendGridBundle以使用api,并按照说明正确进行操作,并从sendgrid获得了API密钥

这是我的.env文件中的部分

MAILER_URL=smtp://smtp.sendgrid.net:587?encryption=tls&auth_mode=login&username=%SENDGRID_API_KEY%&password=%SENDGRID_API_KEY%
###> expertcoder/swiftmailer-send-grid-bundle ###
SENDGRID_API_KEY= MyAPiKey
###< expertcoder/swiftmailer-send-grid-bundle ###

对吗?谢谢

1 个答案:

答案 0 :(得分:1)

此答案不是使用Swiftmailer,而是Symfony的新Mailer。在Symfony Docs之后,您必须安装

composer require symfony/mailercomposer require symfony/sendgrid-mailer

然后取消注释.env文件中的新行,并添加您的Sendgrid API密钥

###> symfony/sendgrid-mailer ###
SENDGRID_KEY=YOUR-API-KEY
MAILER_DSN=smtp://$SENDGRID_KEY@sendgrid
###< symfony/sendgrid-mailer ###

(MAILER_DSN使用SENDGRID_KEY变量,因此请勿设置两次)

理想情况下,您还应将这些行添加到 .env.local 文件中,并从.env文件中删除API密钥。

最后:

       $email = (new Email())
            ->from('hello@example.com')
            ->to('you@example.com')
            //->cc('cc@example.com')
            //->bcc('bcc@example.com')
            //->replyTo('fabien@example.com')
            //->priority(Email::PRIORITY_HIGH)
            ->subject('Time for Symfony Mailer!')
            ->text('Sending emails is fun again!')
            ->html('<p>See Twig integration for better HTML integration!</p>');

        $mailer->send($email);