如何使用Laravel在SendGrid上的电子邮件列表中保存电子邮件?

g9icjywg  于 2023-01-14  发布在  其他
关注(0)|答案(2)|浏览(187)

我正在开发一个功能,一旦用户注册了一个帐户,他将开始在一段时间内收到一系列的电子邮件(电子邮件滴)。
我正在使用Laravel。我需要在注册时获取电子邮件并将其保存在SendGrid上的电子邮件列表中。但我在sendgrid/sendgrid-php软件包的文档中找不到此信息。
那么,你能告诉我如何实施吗?

bzzcjhmw

bzzcjhmw1#

你可以使用SendGrid PHP包来实现这个功能,下面是一个例子来说明你是如何做到的:
在Laravel的注册控制器中:

use SendGrid;
use SendGrid\Mail\To;

class SendGridController extends Controller
{
    public function register(Request $request)
    {
        // ... your rego code
        $apiKey = 'YOUR_API_KEY';
        $sg = new SendGrid($apiKey);

        $list_id = 'YOUR_LIST_ID';

        //Add an email to the list
        $email = new To();
        $email->setEmail($request->input('email'));
        $email->setFirstName($request->input('first_name'));
        $email->setLastName($request->input('last_name'));

        $response = $sg->client->marketing()->lists()->recipients()->post($list_id, $email->jsonSerialize());

        return $response->statusCode();
    }
}

您还可以参考SendGrid API documentation,了解有关如何创建、更新和删除列表以及添加和删除收件人的详细信息。

3j86kqsm

3j86kqsm2#

can be done与sendgrid-php包:

use SendGrid;

$api = new SendGrid(YOUR_API_KEY);
$contacts = [
    [
        'email' => "email@something",
        'address_line_1' => '',
        'city' => '',
        'country' => '',
        'first_name' => '',
        'last_name' => '',
        etc....
    ]
]
$request_body = [
    'contacts' => $contacts
];

$response = $api->client->marketing()->contacts()->put($request_body);
if($response->statusCode() !== 202) {
    // error has occured
}

相关问题