版本:laravel 5.3

发送邮箱:QQ邮箱

根据官网以及别人的教程配置邮件发送,并且对配置过程中遇到的坑进行填补,做一总结,留待参考。

一.开启stmp

进入QQ邮箱,设置-服务,开启smtp。

开启后会出现一个授权码,记下来,要用

打开【如何使用Foxmail等软件收发邮件】,可以找到到smtp服务器地址和端口号,记下来,要用

二.在Laravel中配置邮件发送

配置涉及到两个文件:config/mail.php 和 .env,因为mail.php读取的是.env的配置,所以我把mail.php中的环境变量默认值都去掉(除了mail_from_name),然后只在.env中配置

main.php

return [
'driver' => env('MAIL_DRIVER'),
'host' => env('MAIL_HOST'),
'port' => env('MAIL_PORT'), 'from' => [
'address' => env('MAIL_FROM_ADDRESS'),
'name' => env('MAIL_FROM_NAME','火星大人'), // 经测试,.env中的中文会被忽略,所以此变量不在.env中设置
], 'encryption' => env('MAIL_ENCRYPTION'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
];

.env

MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com // STMP服务器地址
MAIL_PORT=465 // 端口
MAIL_USERNAME=88888888@qq.com // 登陆邮箱的账号
MAIL_PASSWORD=xxxxxxxx // 授权码
MAIL_FROM_ADDRESS=88888888@qq.com // 发件人邮箱
MAIL_ENCRYPTION=ssl

三.代码文件

创建路由:

Route::get('mail/send','MailController@send');

创建控制器:php artisan make:controller MailController

MailController.php

<?php

namespace App\Http\Controllers;
use Illuminate\Support\Facades\Mail; class MailController extends Controller
{
public function send()
{
$name = '王宝花';
// emails.test 指向\resources\views\emails\test.blade.php
Mail::send('emails.test',['name'=>$name],function($message){
$to = '11111111@qq.com';
$message->to($to)->subject('邮件测试');
});
}
}

创建视图:\views\emails\test.blade.php

{{$name}}你好,这是一封测试文件。

发送:http://localhost/mail/send

四.验证结果

"火星大人"就是 MAIL_FROM_NAME 的值

五.配置过程中遇到的两个错误

1.报错:Missing argument 1 for Illuminate\Support\Manager::createDriver(), called in G:\WWW\blog\vendor\laravel\framework\src\Illuminate\Support\Manager.php on line 87 and defined

原因:经测试发现是.env文件中的邮件配置项存在xxx=null的问题,把null改成具体值,或者去掉xxx,把xxx放到mail.php中赋值,可解决

2.报错:Failed to authenticate on SMTP server with username "11111111@qq.com" using 1 possible authenticators

原因:邮箱账号授权码之类的信息不正确,修改之。我原先以为mail_password是登陆密码,其实是授权码

3.控制器中,mail::send()没有返回值。网上的一些信息是通过返回值来判断是否发送成功,这个不对。那么如何判断是否发送成功呢?未解,可能没报错就是成功吧。

4.配置项或者环境变量修改后不生效问题:

  先:php artisan config:clear

  再:php artisan config:cache

  ok。

  所以每次修改main.php 或者 .env 的值后,都要这般操作一下

Laravel --- Laravel 5.3 发送邮件配置的更多相关文章

  1. 用composer安装 Laravel | Laravel需要的环境配置

    一:安装 参考网站 http://v4.golaravel.com/docs/4.2/installation 1.先确保安装好了PHP,和服务器环境 2.然后下载composer可执行文件到当前目录 ...

  2. Laravel安装及环境的配置(XAMPP集成开发环境下)

    Laravel 使用 Composer 来管理代码依赖.所以,在使用 Laravel 之前,请先确认你的电脑上安装了 Composer. 操作系统为win7: 集成开发环境XAMPP: 第一步:安装C ...

  3. laravel 守护进程Supervisor的配置

    安装Supervisor Supervisor是Linux系统中常用的进程守护程序.如果队列进程queue:work意外关闭,它会自动重启启动队列进程.在Ubuntu安装Supervisor 非常简单 ...

  4. laravel框架的安装与配置

    正常安装: 1.composer.(https://getcomposer.org/Composer-Setup.exe) 安装之前要确保目录:wamp\bin\php\php5.4.3下的php.i ...

  5. Laravel for Windows 开发环境配置

    本文为CSDN Choris 原创,转载请事先征得作者同意,以示尊重! 原文:http://blog.csdn.net/choris/article/details/50215835 Laravel配 ...

  6. [Laravel] Laravel的基本数据库操作部分

    [laravel] laravel的数据库配置 找到程序目录结构下.env文件 配置基本的数据库连接信息 DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=blog ...

  7. laravel/laravel和laravel/framework有何区别?

    在安装laravel的时候,我们一般是download github上的laravel/laravel,随后执行composer install,在这个过程中,你会发现composer其中的一项工作是 ...

  8. [Laravel] Laravel的基本使用

    [Laravel] Laravel的基本HTTP路由 使用Laravel的基本路由,实现get请求响应,找到文件app/Http/routes.php 调用Route的静态方法get(),实现get响 ...

  9. jenkins自动发送邮件配置

    一. 前提:确保插件存在 在一切开始之前,必须得确保任务配置里有两个插件:E-mail Notification(邮件通知) 和 Editable Email Notification(可编辑的邮件通 ...

随机推荐

  1. layer的使用笔记

    $('#calendar').fullCalendar({ lang:"zh-cn", buttonText:{ today: '今天' }, eventLimit: true, ...

  2. vue,js 使用中报错 TypeError: Cannot read property '__ob__' of undefined

    原因: data中没有加return 切记!切记!

  3. 封装QtCore(在非Qt项目里使用QString,QJson,QFileInfo,QFile等类)

    单独封装QtCore 一直以来使用QT的特性使用惯了,很多东西QT都封装得很好.如果突然有一天,不使用QT开发了,是不是不习惯. 比如我们经常使用QString很多方法,string,wstring之 ...

  4. 联合概率(joint probability)、分布函数(distribution function)

    0. PMF 与 PDF 的记号 PMF:PX(x) PDF:fX(x) 1. 联合概率 联合概率:是指两个事件同时发生的概率. P(A,B)=P(B|A)⋅P(A)⇒P(B|A)=P(A,B)P(A ...

  5. 安德鲁斯Launcher得到的装在手机的应用程序列表

    Launcher最基本的是让所有的应用程序和入口图标的列表.有两种方法来获得,一般: PackageInfo ResolveInfo 执行获取全部APP的Launcher而且同意进行点击事件,进入到应 ...

  6. 运行该脚本出现/bin/sh^M: bad interpreter: No such file or directory

    错误中脚本文件的一个非常可能的原因是DOS格的, 即每一行的行尾以\r\n来标识, 其ASCII码各自是0x0D, 0x0A.  能够有非常多种办法看这个文件是DOS格式的还是UNIX格式的, 还是M ...

  7. asp .net 文件浏览功能

    达到的目的是,发布站点后,在站点某个目录下的图片文件可以通过url访问 步骤 1.新建一个网站 注意,不要建立在需要较高访问权限的地方,不要建立空网站 如果是需要较高访问权限的目录,而IIS本身账号的 ...

  8. jquery模拟飞秋

    <!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  9. PySide——Python图形化界面入门教程(三)

    PySide——Python图形化界面入门教程(三) ——使用内建新号和槽 ——Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...

  10. tensorflow 1.0 学习:模型的保存与恢复

    将训练好的模型参数保存起来,以便以后进行验证或测试,这是我们经常要做的事情.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf. ...