我一直在关注 Laravel Mail 文档https://laravel.com/docs/5.4/mail通过 SparkPost 帐户发送电子邮件。当我尝试发送时,我得到了
ClientException
Client error: `POST https://api.sparkpost.com/api/v1/transmissions` resulted in a `401 Unauthorized` response:
{"errors": [ {"message": "Unauthorized."} ]}
根据文档,我在 config/services.php 中获得了 sparkpost 密钥,尽管文档没有提及它(为什么不!?)有点谷歌搜索说服我在我的 . .env 文件。然后我有一个网络路由来检查正在使用的配置,
Route::get('test', function()
{
dd(Config::get('mail'));
});
这使
array:9 [▼
"driver" => "sparkpost"
"host" => "smtp.sparkpostmail.com"
"port" => "587"
"from" => array:2 [▶]
"encryption" => "tls"
"username" => "my-sparkpost-account-login-email-address"
"password" => "my-sparkpost-account-login-password"
"sendmail" => "/usr/sbin/sendmail -bs"
"markdown" => array:2 [▶]
]
我实际上想使用我设置的可邮寄和视图,但只是为了测试发送,我绕过了这些并设置了以下路由进行测试:
Route::get('/sparkpost', function () {
Mail::send('emails.test', [], function ($message) {
$message
->from('marketing@my-sparkpost-sending-domain.com', 'Me')
->to('my-email-address', 'My-Name')
->subject('A Test Email');
});
});
它在顶部出现错误(使用我的邮件和视图进行测试给出了完全相同的错误,这让我认为它们设置正确 - 假设上述测试路线是正确的)。
我想知道的是我正在本地机器上进行测试,所以测试 URL 是http://localhost/seg/public/sparkpost - 我想知道这是否会让 SparkPost 跳闸(即我必须实际上是从运行在与 sparkpost 中配置的发送域相同的域中的服务器发送,还是只是电子邮件中的发送地址必须匹配?)
感谢您的任何建议!