首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel 9中集成Sendinblue

在Laravel 9中集成Sendinblue
EN

Stack Overflow用户
提问于 2022-09-23 18:16:53
回答 1查看 114关注 0票数 0

我正在尝试在我的Laravel 9项目中集成Sendinblue API。因此,我正在跟踪来自https://laravel.com/docs/9.x/mail#custom-transports的文档

我安装了"symfony/sendinblue-mailer“包,这是一个编辑过的services.php文件,现在看起来如下:

代码语言:javascript
复制
<?php

return [
'mailgun' => [
    'domain' => env('MAILGUN_DOMAIN'),
    'secret' => env('MAILGUN_SECRET'),
    'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
    'scheme' => 'https',
],

'postmark' => [
    'token' => env('POSTMARK_TOKEN'),
],

'ses' => [
    'key' => env('AWS_ACCESS_KEY_ID'),
    'secret' => env('AWS_SECRET_ACCESS_KEY'),
    'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
],
'sendinblue' => [
    'key' => 'My-code-is-here',
],

];

此外,我还通过文档中的以下代码修改了AppServiceProvider.php,以便文件现在包含:

代码语言:javascript
复制
<?php
 namespace App\Providers;
 use Illuminate\Support\ServiceProvider;
 use Illuminate\Support\Facades\Mail;
 use Symfony\Component\Mailer\Bridge\Sendinblue\Transport\SendinblueTransportFactory;
 use Symfony\Component\Mailer\Transport\Dsn;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
    //
}
public function boot()
{
    Mail::extend('sendinblue', function () {
        return (new SendinblueTransportFactory)->create(
            new Dsn(
                'sendinblue+api',
                'default',
                config('services.sendinblue.key')
            )
        );
    });
}

}

当我试图发送电子邮件时,我会得到以下错误:InvalidArgumentException: Mailer未定义。文件中的\vendor\laravel\framework\src\Illuminate\Mail\MailManager.php在第110行

我怎样才能解决这个问题?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-10-28 16:33:41

简单的curl,您可以使用。我在我的生产服务器中使用下面的代码块,并且工作非常完美。

代码语言:javascript
复制
// ********** API EMAIL START **************

$toName = 'TO NAME';
$toEmail = 'TO EMAIL';
$fromName = 'FROM NAME';
$fromEmail = 'FROM EMAIL';
$subject = 'TEST SUBJECT';
$htmlMessage = '<p>Hello '.$toName.',</p><p>This is my first transactional email sent from Sendinblue.</p>';

$data = array(
    "sender" => array(
        "email" => $fromEmail,
        "name" => $fromName         
    ),
    "to" => array(
        array(
            "email" => $toEmail,
            "name" => $toName 
            )
    ), 
    "subject" => $subject,
    "htmlContent" => '<html><head></head><body><p>'.$htmlMessage.'</p></p></body></html>'
); 

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.sendinblue.com/v3/smtp/email');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$headers = array();
$headers[] = 'Accept: application/json';
$headers[] = 'Api-Key: YOUR API KEY';
$headers[] = 'Content-Type: application/json';  
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);

/*
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
print_r($result);
*/

// *********  EMAIL API END **********************
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73831553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档