laravel8 邮件发送 以qq邮箱来举例

一、开启POP3和SMTP服务

qq邮箱 设置 账户下 

2. 按照要求发送短信后会获取一个秘钥 (要保存好,避免麻烦的重复获取) 

二、使用步骤



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

 .env 文件:

MAIL_MAILER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME=你的邮箱
MAIL_PASSWORD=前面获取的秘钥
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=你的邮箱
MAIL_FROM_NAME=邮件标题

 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),
];

2、生产控制器、配置路由

php artisan make:controller MailController

Route::get(‘mail/send’,‘MailController@sendMail’);

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

// 记得使用内置的邮件类 use Illuminate\Support\Facades\Mail;
public function sendMail() {
    $name = '这是邮件发送的标题'; 
    // Mail::send()的返回值为空,所以可以其他方法进行判断 
    // Mail::send();需要传三个参数;
    // 第一个为引用的模板
    // 第二个为给模板传递的变量(邮箱发送的文本内容)
    // 第三个为一个闭包,参数绑定Mail类的一个实例。
    Mail::send('emails',['name'=>$name],function($message){ 
        $to = 'itlaowen@qq.com'; 
        $message ->to($to)->subject('邮件测试'); 
    }); 
    // 返回的一个错误数组,利用此可以判断是否发送成功
    dd(Mail::failures());  
} 

4、由于上面👆指定了邮件发送的视图层、所以去创建一个view

这是测试邮件!!
{{$name}} 

5、测试

访问:http://localhost/mail/send 如果返回一个空数组则表示邮件发送成功。

6、报错: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值