版本: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. PHP关联数组教程

    PHP 数组 关联数组 什么是数组?在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量.无需很多相似的变量,你可以把数据作为元素存储在数组中.数组中的元素都有自己的 ID,因此可以 ...

  2. 用ORACHK自己主动化检查数据库系统的健壮性

    1.orachk工具主要用途 (1)主动检查您的整个软件在操作系统.CRS.数据库.高可用等层面中的严重问题,以便于IT部门整改,提升系统的稳定性 (2)对于您系统中存在的风险提供简单化和合理化的诊断 ...

  3. 基于高德地图的描点操作,监听地图缩放,展示合理数量的marker

    原文:基于高德地图的描点操作,监听地图缩放,展示合理数量的marker 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lx583274568/art ...

  4. wpf 判断鼠标在一段时间内是否移动

    原文:wpf 判断鼠标在一段时间内是否移动 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/config_man/article/details/74 ...

  5. python 教程 第八章、 第一个python程序

    第八章. 第一个python程序 #!/usr/bin/env python import os import sys import time source = [r'G:\s1', r'G:\s2' ...

  6. 搭建本地yum源和局域网yum源

    搭建本地yum源和局域网yum源 由于很多客户环境是专网,不允许连网,无法使用网上的各种yum源,来回拷贝rpm包安装麻烦,还得解决依赖问题.所以想着搭建个本地/局域网YUM源,方便安装软件. 1   ...

  7. style的继承

    第一种方式:瞄准控件的基类 如下例所示,继承ContentControl的控件,都可以使用这个Style <Window.Resources> <Style x:Key=" ...

  8. KVM虚拟化知识的一些笔记

    一.KVM介绍 KVM:运行在内核空间,提供CPU 和内存的虚级化,以及客户机的 I/O 拦截.Guest 的 I/O 被 KVM 拦截后,交给 QEMU 处理. QEMU:修改过的为 KVM 虚机使 ...

  9. 向WPF的Grid里面增加控件

    在c#中,有时需要通过代码创建面板控件,但是对于面板的操作与之前的控件并不是很直观,因此记下方法,以供后来复习使用: 创建两行两列的表格: 第一种方法: Grid grid = new Grid(); ...

  10. Django 下添加左侧字段显示和搜索

    在对应的apps下建立xadmin.py from .models import EmailVerifyRecord import xadminclass EmailVerifyRecordAdmin ...