我一直在關注Laravel郵件文檔https://laravel.com/docs/5.4/mail通過SparkPost帳戶發送電子郵件。當我嘗試和送我越來越獲取未授權的錯誤試圖發送電子郵件與Sparkpost(Laravel 5.4)
ClientException
Client error: `POST https://api.sparkpost.com/api/v1/transmissions` resulted in a `401 Unauthorized` response:
{"errors": [ {"message": "Unauthorized."} ]}
按照該文檔我有在配置/ services.php的sparkpost鍵,雖然文檔沒有提及任何關於它(爲什麼不呢!?)一些谷歌搜索說服我在我的.env文件中設置郵件驅動程序等。然後,我有這給
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('test', function()
{
dd(Config::get('mail'));
});
其實我是想用可郵寄和我已經成立了意見,但只是爲了測試發送我繞過這些並設置以下路線進行測試:
Route::get('/sparkpost', function() {
Mail::send('emails.test', [], function ($message) {
$message
->from('[email protected].com', 'Me')
->to('my-email-address', 'My-Name')
->subject('A Test Email');
});
});
這得到了錯誤的頂部(與我mailables和看法測試給了這讓我覺得他們是正確設置完全相同的錯誤 - 如對上述測試路線進行總結是正確的)。
我想知道的關於我正在測試我的本地機器,所以測試URL是http://localhost/seg/public/sparkpost - 我想知道是否這是絆倒SparkPost了(即,我必須實際上是從服務器發送與在sparkpost中配置的發送域名運行在同一個域中,還是隻是電子郵件中的發送地址必須匹配?)
感謝您的任何建議!
如果使用SMTP驅動
您發表的JSON似乎不符合您的設置。錯誤來自REST HTTP界面,但該設置似乎適用於SMTP。我認爲你需要找到REST設置並用username/apiKey設置它們。另外請確保用戶名設置爲「SMTP_Injection」 – Yepher
而且您不必從設置的同一域中的服務器發送郵件。該錯誤幾乎總是或者你沒有給API密鑰適當的權限,或者用戶名/密碼配置不正確。 – Yepher