我正在尝试使用Mailgun在Laravel 5.4项目中发送邮件 . 我想我正确设置了配置 . 但是,我收到了这样的错误信息
RequestException.php第111行中的ClientException:客户端错误:POST https://api.mailgun.net/v3/sandboxfeb88d58f18841738b2fc81d7cbc7631.mailgun.org/messages.mime>导致401 UNAUTHORIZED响应:Forbidden
这是我的配置:
在.env文件中
MAIL_DRIVER=mailgun
MAILGUN_DOMAIN=sandboxfeb88d58f18841738b2fc81d7cbc7631.mailgun.org
MAILGUN_SECRET=pubkey-1767e**********
在mail.php文件中
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'richi.htoo@gmail.com'),
'name' => env('MAIL_FROM_NAME', 'Richi Htoo'),
],
在services.php文件中
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
],
我写了邮件发送默认路由代码,如
Route::get('/', function () {
//return view('welcome');
$data = [
'title' => 'Hi student I hope you like the course',
'content' => 'This laravel course was created with a lot of love and dedication for you'
];
Mail::send('emails.test', $data, function($message){
$message->to('white.nuzzle@gmail.com', 'White Nuzzle')->subject('Hello student how are you?');
});
});
而且我还安装了Laravel Package“guzzlehttp / guzzle”6.2版来发送邮件 .
但是,当我调用默认的主路由时,我收到了上面提到的错误消息 .
我在任何地方都找不到任何解决方案,包括这个论坛“stackoverflow.com” .
有人可以帮我吗?
4 回答
坦率地说,这是一次相当严峻的磨难,我让沙盒的工作方式如下
添加了授权收件人 - 显然沙箱无法向任何人发送电子邮件,您需要将其添加为授权收件人 .
在.env文件中使用正确的凭据添加了
MAILGUN_DOMAIN
和MAILGUN_SECRET
,因为services.php使用它们 . 请记住MAILGUN_SECRET
是私钥,以key-
开头,请勿在此处使用公钥把
MAIL_DRIVER=mailgun MAIL_HOST=smtp.mailgun.org MAIL_PORT=587 MAIL_USERNAME=postmaster@sandboxcc*****************.mailgun.org MAIL_PASSWORD=****************** MAIL_ENCRYPTION=tls
!!!MOST IMPORTANT!!!! RESTART YOUR SERVER to load the new .env file .
就个人而言,我从来没有让沙箱帐户工作 . 一个多月前我就这么做了 . Sandbox从未工作过,但我创建的真实账户却没有 . 尝试切换到真实帐户,让我知道这是否适合您 .
只需转到配置文件夹即可 . 并做了一些改变..
错误将被解决 .
确保检查邮件的凭据,确保它们是正确的 .
不要复制公共验证密钥 . 请复制私有API密钥