我目前正在开发基于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 回答
尝试从
.env
中删除MAIL_HOST=smtp.mailgun.org
并尝试一下 . 我过去遇到了同样的情况,并且删除了MAIL_HOST
为我工作 . 新的.env
配置看起来像在此之后,从
command line
运行php artisan config:cache
和php artisan config:clear
并检查邮件是否有效 .