2017-09-26 90 views
0

我一直在關注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驅動
+0

您發表的JSON似乎不符合您的設置。錯誤來自REST HTTP界面,但該設置似乎適用於SMTP。我認爲你需要找到REST設置並用username/apiKey設置它們。另外請確保用戶名設置爲「SMTP_Injection」 – Yepher

+0

而且您不必從設置的同一域中的服務器發送郵件。該錯誤幾乎總是或者你沒有給API密鑰適當的權限,或者用戶名/密碼配置不正確。 – Yepher

回答

0

您需要轉至帳戶> SMTP中繼獲得憑據SMTP, 這不是你的sparkpost帳戶憑據。

如果使用sparkpost司機,

你需要把sparkpost到配置/ services.php的API密鑰,則無需輸入SMTP用戶名和密碼,如果您使用sparkpost驅動

+0

我正在使用內置的API,而不是SMTP ... –

+0

您需要將sparkpost的api密鑰放入config/services.php,如果您使用sparkpost驅動程序,則無需輸入smtp用戶名和密碼 –

相關問題