Uncaught Error: Class 'Sendgrid' not found in
Uncaught Error: Class 'Sendgrid' not found in
我在尝试使用 Sendgrid API 时遇到错误。错误出现为:
Fatal error: Uncaught Error: Class 'Sendgrid' not found in signin.php:xxx Stack trace: #0 index.php(yy): require() #1 {main} thrown in signin.php on line xxx.
我使用 composer 安装了 Sendgrid。然后我像这样注册自动加载器:
index.php
require __DIR__.'/../vendor/autoload.php';
然后按照下面 link 中的指南进行操作。
signin.php
use SendGrid\Mail\From;
use SendGrid\Mail\To;
use SendGrid\Mail\Mail;
$from = new From("test@example.com", "Example User");
$to = [
new To(
"test+test1@example.com",
"Example User",
[
'subject' => 'Subject'
]
)
];
$email = new Mail(
$from,
$tos
);
$email->setTemplateId("REDACTED");
$sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY'));
autoload.php 文件可与其他作曲家一起使用 类。
到目前为止我尝试过的步骤:
- 卸载 sendgrid 并重新安装。
- 手动调用 sendgrid-php.php 以验证发送电子邮件是否正常。
参考
https://github.com/sendgrid/sendgrid-php/blob/main/USE_CASES.md#send-an-email-to-a-single-recipient
composer.json
{
"require": {
"sendgrid/sendgrid": "^8.0",
}
}
我最终将代码放在一个函数中,并且它运行没有问题。我在 autoload.php 之后需要 mailer.php。
万一有人遇到这个问题,这就是我所做的。显然,您需要根据自己的需要对其进行自定义。
mailer.php
<?php
declare(strict_types=1);
use SendGrid\Mail\From;
use SendGrid\Mail\To;
use SendGrid\Mail\Mail;
function mailer() {
$from = new From("test@example.com", "Example User");
$to = new To(
"test+test1@example.com",
"Example User",
[
'subject' => 'Subject'
]
);
$email = new Mail($from, $to);
$email->setTemplateId("REDACTED");
$sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY'));
}
我不确定为什么我的原始代码不起作用,但这个解决方案有效,所以我将保留它。
我在尝试使用 Sendgrid API 时遇到错误。错误出现为:
Fatal error: Uncaught Error: Class 'Sendgrid' not found in signin.php:xxx Stack trace: #0 index.php(yy): require() #1 {main} thrown in signin.php on line xxx.
我使用 composer 安装了 Sendgrid。然后我像这样注册自动加载器:
index.php
require __DIR__.'/../vendor/autoload.php';
然后按照下面 link 中的指南进行操作。
signin.php
use SendGrid\Mail\From;
use SendGrid\Mail\To;
use SendGrid\Mail\Mail;
$from = new From("test@example.com", "Example User");
$to = [
new To(
"test+test1@example.com",
"Example User",
[
'subject' => 'Subject'
]
)
];
$email = new Mail(
$from,
$tos
);
$email->setTemplateId("REDACTED");
$sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY'));
autoload.php 文件可与其他作曲家一起使用 类。
到目前为止我尝试过的步骤:
- 卸载 sendgrid 并重新安装。
- 手动调用 sendgrid-php.php 以验证发送电子邮件是否正常。
参考
https://github.com/sendgrid/sendgrid-php/blob/main/USE_CASES.md#send-an-email-to-a-single-recipient
composer.json
{
"require": {
"sendgrid/sendgrid": "^8.0",
}
}
我最终将代码放在一个函数中,并且它运行没有问题。我在 autoload.php 之后需要 mailer.php。
万一有人遇到这个问题,这就是我所做的。显然,您需要根据自己的需要对其进行自定义。
mailer.php
<?php
declare(strict_types=1);
use SendGrid\Mail\From;
use SendGrid\Mail\To;
use SendGrid\Mail\Mail;
function mailer() {
$from = new From("test@example.com", "Example User");
$to = new To(
"test+test1@example.com",
"Example User",
[
'subject' => 'Subject'
]
);
$email = new Mail($from, $to);
$email->setTemplateId("REDACTED");
$sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY'));
}
我不确定为什么我的原始代码不起作用,但这个解决方案有效,所以我将保留它。