https://blog.csdn.net/wulove52/article/details/71172842

Laravel集成了SwiftMailer库进行邮件发送邮件配置文件位于config/mail.PHP:、

  1. return [
  2. 'driver' => env('MAIL_DRIVER', 'smtp'),
  3. 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
  4. 'port' => env('MAIL_PORT', 587),
  5. 'from' => ['address' => null, 'name' => null],
  6. 'encryption' => env('MAIL_ENCRYPTION', 'tls'),
  7. 'username' => env('MAIL_USERNAME'),
  8. 'password' => env('MAIL_PASSWORD'),
  9. 'sendmail' => '/usr/sbin/sendmail -bs',
  10. 'pretend' => false,
  11. ]

以上的参数  我们都会有详细的讲解!  请继续往下看!

driver用于配置默认的邮件发送驱动,Laravel支持多种邮件驱动方式,包括smtpMailgunMaildrillAmazon
SES
mailsendmail,Mailgun和Amazon SES都是收费的,Maildrill目前不支持中国区用户,这三个都是第三方邮件服务。mail驱动使用PHP提供的mail函数发送,sendmail驱动通过Sendmail/Postfix(Linux)提供的命令发送邮件,smtp驱动通过支持ESMTP的SMTP发送邮件。

注:ESMTP即Extended SMTP, 是对标准 SMTP 协议进行的扩展,它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。

就目前状况来看,使用smtp是最明智的选择,mail不安全,sendmail需要安装配置Sendmail/Postfix,其他要么付费要么不能用(汗!)。下面其它配置的说明都基于driversmtp

接下来其他的配置都好理解,host是邮箱所在主机,比如我们使用163邮箱,对应值是smtp.163.com,使用QQ邮箱的话,对应值是smtp.qq.com

port用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465

from配置项包含addressname,前者表示发送邮箱,后者表示发送邮件使用的用户名。

encryption表示加密类型,可以设置为null表示不使用任何加密,也可以设置为tls/ssl

username表示邮箱账号,比如yaojinbu@163.com

password表示上述邮箱登录对应登录密码。

sendmail是在设置driversendmail时使用,用于指定sendmail命令路径。

pretend用于配置是否将邮件发送记录到日志中,默认为false则发送邮件不记录日志,如果为true的话只记录日志不发送邮件,这一配置在本地开发中调试时很有用。

// 接下来我们要做的就是要在控制器写代码了!

use Mail;

在方法中需要写以下!

  1. public function send()
  2. {
  3. $name = 'vilin';
  4. $flag = Mail::send('emails.test',['name'=>$name],function($message){
  5. $to = '1072155122@qq.com';
  6. $message ->to($to)->subject('测试邮件');
  7. });
  8. if($flag){
  9. echo '发送邮件成功,请查收!';
  10. }else{
  11. echo '发送邮件失败,请重试!';
  12. }
  13. }

//Mail::send需要传递三个参数,第一个是邮件视图,第二个是传入视图的数据,第三个是一个闭包,该闭包中定义了收件人、抄送人(如果有的话)、邮件主题、附件等信息。邮件的主体内容位于局部视图中,下面我们就来定义这个局部视图,在resources/views/admin目录下新建test.blade.php,编辑其内容如下:
//  以上是单纯的文本发送/!  但是还不是带有图片发送的格式!  需要发送图片的格式的!  需要继续往下继续看!

图片的发送!

//这里是view成! 需要一下这么输入!

  1. {{$name}},这是一封测试邮件
  2. <br>
  3. <img src="{{$message->embed($imgPath)}}">

//  图片的发送和文本的发送  没有什么其他不一样的!   而是在参数后面多写了一个参数! 一个简单的图片发送的文件就好了!

  1. $name = 'vilin';
  2. $imgPath = 'http://laravelacademy.org/wp-statics/images/carousel/LaravelAcademy.jpg';
  3. $flag = Mail::send('emails.test',['name'=>$name,'imgPath'=>$imgPath],function($message){

1.1 laravel发送邮件涉及的配置文件

  1. .env
  2. /config/mail.php

以上是laravel发送邮件两个配置的地方,默认使用composer生成项目的时候,自动生成.env文件里会有邮箱的配置字段,如下:

  1. MAIL_DRIVER=smtp
  2. MAIL_HOST=mailtrap.io
  3. MAIL_PORT=2525
  4. MAIL_USERNAME=null
  5. MAIL_PASSWORD=null
  6. MAIL_ENCRYPTION=null

以上这个几个字段在mail.PHP文件中都有对应的字段,如果部署上线,仅仅配置了mail.php而没有改.env文件里的配置(除非没有.env),那么邮箱是发送不成功的,因为.env文件会覆盖mail.php文件字段,切记小心。

1.2 使用QQ邮箱smtp发送邮件问题

1.2.1 开启QQ邮箱smtp和imap功能

在使用这个QQ邮箱发送之前你需要在所要发送邮箱的后台开启smtp和imap发送邮箱授权功能,否则将一直提示你没有授权。如果想要显示发送的记录,则需要设置收取选项。设置位置,直接上图:

至少你需要把POP3/SMTP服务开启,不然发邮件那是天方夜谭啊。

开启后,你还需要点击下方的:“生成授权码”,获取一个能够登录的动态密码:

千万千万千万记得,MAIL_PASSWORD填写的并非是发送邮箱的账号密码,而是到腾讯邮箱管理中心授权的动态密码!!!

加密方式建议选择选择ssl保证数据安全,那么最终.env邮件长这样:

  1. MAIL_DRIVER=smtp
  2. MAIL_HOST=smtp.qq.com
  3. MAIL_PORT=
  4. MAIL_USERNAME=[你的账号]
  5. MAIL_PASSWORD=gzoyimtltnqsbdba
  6. MAIL_ENCRYPTION=ssl

mail.php配置文件中,你仅仅需要修改from字段

  1. return [
  2. 'from' => ['address' => [MAIL_USERNAME], 'name' => '小王']
  3. ]

然后你就可以愉快大发邮件啦:

5.2 发送邮件方式

  1. \Mail::send('mail.index', [], function ($message) { $message->to(['chengxuyuan@qq.com'])->subject('公司未婚妹子数量报表统计');});

从5.3开始,发送邮件被抽象成了一个对象,如果使用laravel 5.3尝鲜的,请移步官方最新文档: https://laravel.com/docs/5.3/mail

//代码实现例子

  1. $data = [];
    $flag = \Illuminate\Support\Facades\Mail::to('panxlmail@qq.com')->send(new \App\Mail\UserMail($data));
    if($flag) {
    echo '发送失败';
    } else {
    echo '发送成功';
    }

Laravel5.2 发送邮件(smtp方式最简单的讲解!)-邮件部分的更多相关文章

  1. C# - VS2019WinFrm程序通过SMTP方式实现邮件发送

    前言 本篇主要记录:VS2019 WinFrm桌面应用程序通过SMTP方式实现邮件发送.作为Delphi转C#的关键一步,接下来将逐步实现Delphi中常用到的功能. 准备工作 搭建WinFrm前台界 ...

  2. Java中XML格式的字符串4读取方式的简单比较

    Java中XML格式的字符串4读取方式的简单比较 1.java自带的DOM解析. import java.io.StringReader; import javax.xml.parsers.Docum ...

  3. spring aop 使用xml方式的简单总结

    spring aop的 xml的配置方式的简单实现: 1.编写自己的切面类:配置各个通知类型 /** * */ package com.lilin.maven.service.aop; import ...

  4. 依据 smtp协议的简单golang 的发邮件实现

    依据 smtp协议的简单golang 的发邮件实现 协议格式如下 From:sender_user@demo.net To:to_user@demo.net Subject:这是主题 Mime-Ver ...

  5. 我在阿里这仨月 前端开发流程 前端进阶的思考 延伸学习的方式很简单:google 一个关键词你能看到十几篇优秀的博文,再这些博文中寻找新的关键字,直到整个大知识点得到突破

    我在阿里这仨月 Alibaba 试用期是三个月,转眼三个月过去了,也到了转正述职的时间.回想这三个月做过的事情,很多很杂,但还是有重点. 本文谈一谈工作中遇到的各种场景,需要用到的一些前端知识,以及我 ...

  6. ASP.NET中MD5的加密方式很简单

    在ASP.NET中MD5的加密方式很简单,代码如下: FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5&quo ...

  7. WEB开发中一些常见的攻击方式及简单的防御方法

    WEB开发中一些常见的攻击方式及简单的防御方法 转载:http://blog.csdn.net/seven__________7/article/details/70896913

  8. 框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解)

    框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解) 一丶什么是框架,以及框架的作用 什么是框架? 框架,简而言之就是把东西封装好了,使用框架开发可以快速开发程序,例如MFC程序的双击写代码. 为 ...

  9. C#多线程简单例子讲解

    C#多线程简单例子讲解 标签: 多线程c#threadobjectcallbacktimer 分类: C#(7) 转载网址:http://www.knowsky.com/540518.html .NE ...

随机推荐

  1. itextsharp 1.0

    1 效果图 2.代码 引用组件: using iTextSharp.text;using iTextSharp.text.pdf;using System;using System.Data;usin ...

  2. Java加密AES算法及spring中应用

    开门见山直接贴上代码 .AESUtil加密解密工具类 import java.security.Key; import java.security.SecureRandom; import java. ...

  3. golang 命令行参数

    package main import ( "fmt" "flag" ) func main() { //定义几个变量,用于接收命令行的参数值 var user ...

  4. 转搞定python多线程和多进程

    转自https://www.cnblogs.com/whatisfantasy/p/6440585.html 1 概念梳理: 1.1 线程 1.1.1 什么是线程 线程是操作系统能够进行运算调度的最小 ...

  5. Katalon系列十九:元素相同或无法定位时的定位技巧

    经常看到有人问元素属性都相同,怎么定位,这里总结一下.下面以Xpath为例讲解,CSS其实也是一样的,只是语法不一样罢了.网上说CSS会比Xpath快一些,但在Katalon主用Xpath,感觉也还行 ...

  6. phpcms 允许英文目录有空格

    大家都用过phpcm添加栏目吧,在添加栏目里面,有个选项是 英文目录,这里目录可以用作伪静态功能.这么英文不能有空格等特殊字符.但是如果页面中需要引用包含空格的字符呢,例如,关于我们页面,我要显示英文 ...

  7. mysql更改密码

    mysql command line client输入密码以后闪退问题的解决: 网上搜到的解决办法(my.ini文件之类的修改对我都没有起到作用).. 所以觉得是自己密码的问题,因为许久不用这个软件了 ...

  8. 【JZOJ4921】【NOIP2017提高组模拟12.10】幻魔皇

    题目描述 幻魔皇拉比艾尔很喜欢斐波那契树,他想找到神奇的节点对. 所谓斐波那契树,根是一个白色节点,每个白色节点都有一个黑色节点儿子,而每个黑色节点则有一个白色和一个黑色节点儿子.神奇的节点对则是指白 ...

  9. 可变参数与foreach 的原理

    曾经写过c++11特性使用,但是这个究竟是什么呢,和其他语言的foreach语句十分相像 函数必须具有在编译时已知的单个返回类型;当编译器可以从上下文中找出它必须是什么时,auto只会使您不必输入它. ...

  10. hdu3917 最大权闭合图

    题意:有N个城市,M个公司.现在需要建立交通是获得的利益最大.如果2个公司A,B, A修的路为Xa->Ya,B的路为Xb->Yb,如果Ya==Xb,那么这2个公司有关系. 对于每个公司都有 ...