如何通过PHP代码调用SendGrid的Design Library模板发送邮件
你找到的那行代码确实是正确的实现方向,SendGrid官方PHP SDK就是通过指定动态模板ID的方式调用已保存的设计模板发送邮件的,具体操作流程如下:
前置操作
Design Library中存储的设计无法直接通过代码调用,需要先转换为可调用的事务邮件模板:
- 进入SendGrid后台的Design Library,找到你已创建的HTML模板
- 点击模板右侧的操作按钮,选择创建事务模板,按提示完成保存后,你会得到一个以
d-开头的模板ID,这个ID就是代码调用的核心参数
PHP代码实现步骤
首先通过composer安装SendGrid PHP SDK依赖:
composer require sendgrid/sendgrid基础发送代码示例:
<?php require 'vendor/autoload.php'; $email = new \SendGrid\Mail\Mail(); // 配置发件人信息 $email->setFrom("你的发件邮箱地址", "发件人展示名称"); // 配置收件人信息 $email->addTo("收件人邮箱地址", "收件人名称"); // 填入你之前获取的事务模板ID,就是你找到的示例代码对应的用法 $email->setTemplateId("d-你自己的模板ID字符串"); // 如果模板内配置了{{变量名}}格式的动态占位符,通过下面的方法传入替换值,没有变量可省略这段 $email->addDynamicTemplateDatas([ 'username' => '用户昵称', 'order_no' => '202400001' ]); $sendgrid = new \SendGrid('你的SendGrid API密钥'); try { $response = $sendgrid->send($email); // 打印返回信息排查问题用 print $response->statusCode() . "\n"; print_r($response->headers()); print $response->body() . "\n"; } catch (Exception $e) { echo '发送异常: '. $e->getMessage() ."\n"; }
注意事项
- SendGrid API密钥需要在后台API Keys页面创建,必须给密钥开启
Mail Send权限才能正常发信 - 接口返回202状态码即代表请求成功,邮件已进入SendGrid的发送队列
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

