首页 文章

Laravel 5.2 mailgun错误请求错误

提问于
浏览
2

我目前正在开发基于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('xxxxxxx@windowslive.com','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>

1 回答

  • 0

    尝试从 .env 中删除 MAIL_HOST=smtp.mailgun.org 并尝试一下 . 我过去遇到了同样的情况,并且删除了 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-*****************************
    

    在此之后,从 command line 运行 php artisan config:cachephp artisan config:clear 并检查邮件是否有效 .

相关问题