ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

laravel8 发送email验证

2022-06-20 14:36:37  阅读:199  来源: 互联网

标签:laravel8 验证 发送 env Mail MAIL php email name


1.

 

 2.

 

 

3.到这一步会提示验证,按照提示发送短信通过验证:

 

 4.短信发送成功,会出现如下提示、也就代表配置成功。你需要记录密钥,这个东西会在配置中用:

 

 

对 Laravel 框架中邮件发送的配置文件进行修改:

.env

1 MAIL_DRIVER=smtp
2 MAIL_HOST=smtp.qq.com
3 MAIL_PORT=465
4 MAIL_USERNAME=邮箱
5 MAIL_FROM_ADDRESS=邮箱
6 MAIL_FROM_NAME="发件人名称"
7 MAIL_PASSWORD=授权码
8 MAIL_ENCRYPTION=ssl    //加密方式    ssl / stl

config/mail.php 文件:

return [
‘driver’ => env(‘MAIL_DRIVER’, ‘smtp’),
‘host’ => env(‘MAIL_HOST’, ‘smtp.mailgun.org’),
‘port’ => env(‘MAIL_PORT’, 587),
‘from’ => [
‘address’ => env(“MAIL_USERNAME”, “”),
‘name’ => env(“MAIL_FROM_NAME”)
],
‘encryption’ => env(‘MAIL_ENCRYPTION’),
‘username’ => env(‘MAIL_USERNAME’),
‘password’ => env(‘MAIL_PASSWORD’),
‘sendmail’ => ‘/usr/sbin/sendmail -bs’,
‘pretend’ => env(‘MAIL_PRETEND’, false),
];

创建控制器、配置路由

编辑控制器、加入以下代码:

use Illuminate\Support\Facades\Mail;

public function sendMail() 
{
$code = mt_rand(1000,9999);
Session::put('email',$code);
$to = request()->input('email');    //收件人邮箱
$name = '尊敬的用户你的验证码为'.$code;  //发送内容
// Mail::send()的返回值为空,所以可以其他方法进行判断 
// Mail::send();需要传三个参数; 
// 第一个为引用的模板 
// 第二个为给模板传递的变量(邮箱发送的文本内容) 
// 第三个为一个闭包,参数绑定Mail类的一个实例。 
$to = 'itlaowen@qq.com'; //收件人邮箱 
Mail::send('view视图',['name'=>$name],function($message) use ($to){ 

$message ->to($to)->subject('邮件测试'); //subject("邮件标题")
}); 
// 返回的一个错误数组,利用此可以判断是否发送成功 
dd(Mail::failures()); 
//如果为0则发送成功 

} 

创建view

{{$name}} 

报错:stream_socket_client() 、certificate verify failed

具体报错如下:

stream_socket_client(): SSL operation failed with code 1. OpenSSL
Error messages: error:14090086:SSL
routines:ssl3_get_server_certificate:certificate verify failed

原因:
php openssl 没有加载 ca 证书 , 去下载个 ca 证书然后添加进去即可

解决:

查看phpinfo()、检查openssl.cafile的文件是否存在
不存在的话进行如下操作
1、找到自己的 php 的安装目录
2、进入目录:cd php/etc/
3、下载 ca 证书:wget http://curl.haxx.se/ca/cacert.pem
4、查看目录:pwd
5、编辑 php.ini:vim php.ini
6、修改 openssl.cafile 的路径 openssl.cafile=/usr/local/php/etc/cacert.pem

解决laravel 8 发送邮件提示: cannot sendmessage without a sender address

这是因为我们需要去修改一下 mail.php 配置文件
打开 config/mail.php 找到 from 配置项
‘from’ => [‘address’ => null, ‘name’ => null]
我们需要配置发件地址,和显示的昵称,把这两项配置好了就ok啦~

 

标签:laravel8,验证,发送,env,Mail,MAIL,php,email,name
来源: https://www.cnblogs.com/junwuxiao/p/16393103.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有