尝试使用Sparkpost发送电子邮件时出现未经授权的错误(Laravel 5.4)

时间:2017-09-26 20:06:01

标签: laravel laravel-5 laravel-5.4 sparkpost

我一直在关注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中配置的发送域相同的域运行的服务器发送,或者它只是电子邮件中必须匹配的发送地址?)

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

如果你使用smtp驱动程序,

您需要转到帐户> SMTP Relay获取SMTP凭据, 这不是你的火花塞帐户凭证。

如果你使用火花塞驱动程序,

你需要把cfpos的api键放到config / services.php中,如果使用sparkpost驱动程序,则无需输入smtp用户名和密码