Laravel 5.1向foreach中的所有用户发送邮件[GuzzleHttp \ Exception \ ClientException]客户端错误:400

时间:2015-11-05 13:36:28

标签: php laravel laravel-5.1 guzzle

我正在尝试向数据库中的所有用户发送电子邮件,但是我收到以下错误:[GuzzleHttp \ Exception \ ClientException]客户端错误:400。

这是我的代码:

$users = App\User::all();

foreach($users as $user) {
    $code = new App\Code();
    $code->code = str_random(10);
    $code->save();

    Mail::send('emails.code', ['code' => $code], function($message) use ($user)
    {
         $message->to($user->email)->from('foo.bar@gmail.com', 'Foo Bar')->subject('New code, new chances!');
    });
}

2 个答案:

答案 0 :(得分:0)

[GuzzleHttp \ Exception \ ClientException]客户端错误:400
用于找不到的网址
检查config / mail.php中的主机网址,主机网址可能有误

答案 1 :(得分:0)

不确定你是否有它工作但我今天遇到了完全相同的问题而且我不知道出了什么问题,因为我在之前使用mailgun的Laravel项目中完成了相同的实现。然后我在配置中发现了问题。

所以,这就是故障......我不知道它在哪个版本中有所改变,但是在config / services.php中,mailgun配置就像这样,

'mailgun' => [
    'domain' => env('MAILGUN_DOMAIN'),
    'secret' => env('MAILGUN_SECRET'),
],

在我记忆之前就是这样的,

'mailgun' => [
    'domain' => env('MAIL_DOMAIN'),
    'secret' => env('MAIL_SECRET'),
],

所以在我的.env文件中,我只引用了MAIL_DOMAIN和MAIL_SECRET环境变量,但我刚刚在services.php文件中实现,它实际上引用了不同的环境变量 - MAILGUN_DOMAIN和MAILGUN_SECRET。

所以我刚刚添加了这些环境变量,清除了配置缓存,现在它运行正常。

(我正在使用Laravel 5.1.23版BTW)

希望这会有所帮助。感谢。