Laravel 5.2 mailgun错误请求错误

问题描述 投票:2回答:1

我目前正在开发基于Laravel 5.2的应用程序。我需要向用户发送带有重置密码链接的电子邮件,我正在使用mailgun。当我向邮件注册邮件的邮件发送电子邮件时,一切正常。但它是任何其他电子邮件地址时失败。

错误说:

RequestException.php第71行中的ClientException:客户端错误响应[url] https://api.mailgun.net/v3/sandbox *******************************.mailgun.org /messages.mime [状态代码] 400 [原因短语] BAD REQUEST

我尝试了很多解决方案,但没有一个可行。知道为什么会这样吗?也许是由localhost引起的?我在用:

  • Laravel 5.2
  • Mailgun
  • WAMP作为我的本地主机
  • guzzlehttp v.4.0

控制器功能:

public function sendEmail() {
    $sent = Mail::send('mails.test', [], function ($message) {
        $message->to('[email protected]','somename');
        $message->subject("Activate Your Account");
        $message->getSwiftMessage();
    });
    if ($sent === 0) {
        return redirect('/')
            ->withErrors('Failed to send activation email.');
    }
    return redirect('/')
        ->withSuccess('Mail was sent.');
}

环境数据:

MAIL_DRIVER=mailgun
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=postmaster@sandbox*****************************.mailgun.org
MAIL_PASSWORD=**********************
MAIL_ENCRYPTION=null

MAILGUN_DOMAIN=sandbox*****************************.mailgun.org
MAILGUN_SECRET=key-*****************************

文件:conf / mail.php配置为.env数据

路线:

Route::get('auth/send','AuthController@sendEmail');

按钮:

<a href="{{action('AuthController@sendEmail')}}" class="btn btn-danger">Test mail</a>
php laravel email request mailgun
1个回答
0
投票

尝试从MAIL_HOST=smtp.mailgun.org中删除.env并尝试一下。我在过去遇到了同样的情况,删除MAIL_HOST为我工作。新的.env配置看起来像

MAIL_DRIVER=mailgun
MAIL_PORT=587
MAIL_USERNAME=postmaster@sandbox*****************************.mailgun.org
MAIL_PASSWORD=**********************
MAIL_ENCRYPTION=null

MAILGUN_DOMAIN=sandbox*****************************.mailgun.org
MAILGUN_SECRET=key-*****************************

在此之后,从php artisan config:cache运行php artisan config:clearcommand line并检查邮件是否有效。

© www.soinside.com 2019 - 2024. All rights reserved.