Laravel 进行配置
config/mail.PHP
.env
mail.PHP 与. env 中
- 'from' => [
- 'address' => env('MAIL_FROM_ADDRESS', '与. env 中 MAIL_USERNAME 保持一致'),
- ],
- MAIL_USERNAME=address
driver 用于配置默认的邮件发送驱动, Laravel 支持多种邮件驱动方式, 包括 smtp,Mailgun,Maildrill,Amazon SES,mail 和 sendmail,Mailgun 和 Amazon SES 都是收费的 Maildrill 目前不支持中国区用户, 这三个都是第三方邮件服务. mail 驱动使用 PHP 提供的 mail 函数发送, sendmail 驱动通过 Sendmail/Postfix(Linux) 提供的命令发送邮件, smtp 驱动通过支持 ESMTP 的 SMTP 发送邮件.
就目前状况来看, 使用 smtp 是最明智的选择, mail 不安全, sendmail 需要安装配置 Sendmail/Postfix, 其他要么付费要么不能用.
host 是邮箱所在主机, 比如我们使用 163 邮箱, 对应值是 smtp.163.com, 使用 QQ 邮箱的话, 对应值是 smtp.qq.com.
port 用于配置邮箱发送服务端口号, 比如一般默认值是 25, 但如果设置 SMTP 使用 SSL 加密, 该值为 465.
from 配置项包含 address 和 name, 前者表示发送邮箱, 后者表示发送邮件使用的用户名.
encryption 表示加密类型, 可以设置为 null 表示不使用任何加密, 也可以设置为 tls 或 ssl.
username 表示邮箱账号, 比如 *****@163.com
password 表示上述邮箱登录对应登录密码. 注意 QQ 邮箱的话应该开启 POP3|SMTP 服务时给的密钥.
sendmail 是在设置 driver 为 sendmail 时使用, 用于指定 sendmail 命令路径.
编写代码进行邮箱测试
生成控制器:
PHP artisan make:controller TextController
路由:
Route::get('text/send','[email protected]');
测试代码如下:
- <?PHP
- namespace App\Http\Controllers;
- use Elasticsearch\ClientBuilder;
- use App\Jobs\Queue;
- use Illuminate\Support\Facades\Redis;
- use Illuminate\Support\Facades\Mail;
- class TextController extends Controller
- {
- public function send(){
- $name = '***';
- // Mail::send() 的返回值为空, 所以可以其他方法进行判断
- Mail::send('text',['name'=>$name],function($message){
- $to = '[email protected]';
- $message ->to($to)->subject('测试邮箱');
- });
- // 返回的一个错误数组, 利用此可以判断是否发送成功
- dd(Mail::failures());
- }
- }
Mail::send(); 需要传三个参数, 第一个为引用的模板, 第二个为给模板传递的变量, 第三个为一个闭包, 参数绑定 Mail 类的一个实例.
Mailer::send 文档
Mailer:: failures 文档
在 resresources/views / 下创建一个 text.blade.PHP
{{$name}} 你好, 这是一封测试文件.
最后 url 地址栏访问测试即可
详情请看: https://www.jianshu.com/p/8ccb2820df23
来源: http://www.bubuko.com/infodetail-3046637.html