我一直在关注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中获得了火花塞的关键,虽然文档中没有提及任何相关信息(为什么不呢??)谷歌搜索引导我说服一下我的.env文件中的邮件驱动程序等。然后我有一个Web路由来检查正在使用的配置,
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');
});
});
在顶部出现错误(使用我的mailables和视图测试给出了完全相同的错误,这使我认为它们已正确设置 - 假设上述测试路线正确)。
我想知道的事情是我在本地计算机上进行测试,因此测试网址为http://localhost/seg/public/sparkpost - 我想知道这是否会使SparkPost瘫痪(即我必须从与在sparkpost中配置的发送域相同的域运行的服务器发送,或者它只是电子邮件中必须匹配的发送地址?)
感谢您的任何建议!
答案 0 :(得分:0)
如果你使用smtp驱动程序,
您需要转到帐户> SMTP Relay获取SMTP凭据, 这不是你的火花塞帐户凭证。
如果你使用火花塞驱动程序,
你需要把cfpos的api键放到config / services.php中,如果使用sparkpost驱动程序,则无需输入smtp用户名和密码