版本: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

  1. return [
  2. 'driver' => env('MAIL_DRIVER'),
  3. 'host' => env('MAIL_HOST'),
  4. 'port' => env('MAIL_PORT'),
  5.  
  6. 'from' => [
  7. 'address' => env('MAIL_FROM_ADDRESS'),
  8. 'name' => env('MAIL_FROM_NAME','火星大人'), // 经测试,.env中的中文会被忽略,所以此变量不在.env中设置
  9. ],
  10.  
  11. 'encryption' => env('MAIL_ENCRYPTION'),
  12. 'username' => env('MAIL_USERNAME'),
  13. 'password' => env('MAIL_PASSWORD'),
  14. 'sendmail' => '/usr/sbin/sendmail -bs',
  15. ];

.env

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

三.代码文件

创建路由:

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

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

MailController.php

  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4. use Illuminate\Support\Facades\Mail;
  5.  
  6. class MailController extends Controller
  7. {
  8. public function send()
  9. {
  10. $name = '王宝花';
  11. // emails.test 指向\resources\views\emails\test.blade.php
  12. Mail::send('emails.test',['name'=>$name],function($message){
  13. $to = '11111111@qq.com';
  14. $message->to($to)->subject('邮件测试');
  15. });
  16. }
  17. }

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

  1. {{$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. Android studio中的6大布局

    1.相对布局代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns: ...

  2. spring应用实例

    新建一个登陆页面:loginActionSupport.jsp,代码例如以下   <%@page contentType="text/html;charset=GBK" is ...

  3. WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形

    原文:WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形 说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘> ...

  4. Cocos2d-x layout (两)

    相对于对照布局 Size widgetSize = Director::getInstance()->getWinSize(); Text* alert = Text::create(" ...

  5. WPF 3D动态加载模型文件

    原文:WPF 3D动态加载模型文件 这篇文章需要读者对WPF 3D有一个基本了解,至少看过官方的MSDN例子. 一般来说关于WPF使用3D的例子,都是下面的流程: 1.美工用3DMAX做好模型,生成一 ...

  6. crossplaform---Nodejs in Visual Studio Code 04.Swig模版

    1.开始 设置Node_Global:npm config set prefix "C:\Program Files\nodejs" Express组件:npm install e ...

  7. Matlab Tricks(二十)—— Hilbert matrix 的创建

    Hij=1i+j−1 N = 5; A = ones(N, 1)*(1:N); B = A'; H = 1./(M+N-1);

  8. 浅谈 Swift 中的 Optionals

    input[type="date"].form-control,.input-group-sm>input[type="date"].input-grou ...

  9. 如何清除XP的网络共享密码

    一.利用NET命令 我们知道在Windows XP中提供了“net user”命令,该命令可以添加.修改用户账户信息,其语法格式为: net user [UserName [Password | *] ...

  10. C# 特性的使用

    using ClassLibrary;using System;using System.Collections.Generic;using System.Linq;using System.Refl ...