Laravel 自带 SwiftMailer 库,集成了多种邮件API,可以很方便的实现邮件的发送。

我们使用到的是SMTP(Simple Message Transfer Protocol)简单邮件传输协议,通常理解为邮件发送服务器。

1、开启POP3和SMTP服务

1.1、在这里我们以QQ邮箱为案例

设置 -> 账户 -> POP3 -> 开启

到这一步会提示验证,按照提示发送短信通过验证:

短信发送成功,会出现如下提示、也就代表配置成功。你需要记录密钥,这个东西会在配置中用:

1.2、在这里我们以 163邮箱为案例

后期有时间在维护。。。。理解理解。。。

2、对 Laravel 框架中邮件发送的配置文件进行修改:

.env 文件:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME=********@qq.com
MAIL_PASSWORD=qq邮箱此处填写上图产生的授权码
MAIL_FROM_NAME=邮箱的名称
MAIL_ENCRYPTION=ssl

config/mail.php 文件:

return [
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env("MAIL_USERNAME", ""),
'name' => env("MAIL_FROM_NAME")
],
'encryption' => env('MAIL_ENCRYPTION'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => env('MAIL_PRETEND', false),
]; // 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。
// 使用腾讯企业邮箱,对应值是smtp.exmail.qq.com // port:用于配置邮箱发送服务端口号,
// 一般默认值是25,但如果设置SMTP使用SSL加密,该值为465。 // from:配置项包含address和name,
// address 表示你自己的邮箱
// name 表示你邮件用户名(这里邮箱,是用来发邮件的邮箱)。 // encryption:表示加密类型;
// 可以设置为null表示不使用任何加密,也可以设置为tls或ssl。 // username: 表示邮箱账号,比如123456789@qq.com
// password 表示上述邮箱登录对应登录密码。
// 注意QQ邮箱的话应该开启POP3|SMTP服务时给的授权码。
// sendmail: 是在设置driver为sendmail时使用,用于指定sendmail命令路径。
// pretend: 用于配置是否将邮件发送记录到日志中;
// 默认为false则发送邮件不记录日志;
// 如果为true的话只记录日志不发送邮件,这一配置在本地开发中调试时很有用

3、生产控制器、配置路由

php artisan make:controller MailController
Route::any('mail/send','MailController@sendMail');

4、编辑控制器、加入以下代码:

// 记得使用内置的邮件类 use Illuminate\Support\Facades\Mail;
public function sendMail() {
$name = '这是邮件发送的标题';
// Mail::send()的返回值为空,所以可以其他方法进行判断
// Mail::send();需要传三个参数;
// 第一个为引用的模板
// 第二个为给模板传递的变量(邮箱发送的文本内容)
// 第三个为一个闭包,参数绑定Mail类的一个实例。
Mail::send('emails.test',['name'=>$name],function($message){
$to = 'itlaowen@qq.com';
$message ->to($to)->subject('邮件测试');
});
// 返回的一个错误数组,利用此可以判断是否发送成功
dd(Mail::failures());
}

5、由于上面

Laravel - 上手实现 - 邮件发送的更多相关文章

  1. laravel邮件发送

    laravel邮件发送 使用邮件发送类Mail 文本 静态方法 raw() 富文本 静态方法 send() 注:使用邮件发送必须有邮件账号,需要开启smtp协议,现在主流服务器都支持,smtp默认端口 ...

  2. Laravel5.5 邮件驱动使用 SMTP 驱动实现邮件发送

    laravel5.5 邮件驱动 Laravel 支持多种邮件驱动,包括 smtp.Mailgun.Maildrill.Amazon SES.mail 和 sendmail.Mailgun . Mail ...

  3. python 项目实战之Django 邮件发送

    发送邮件¶ 虽然 Python 借助 smtplib 模块简化了发送邮件的流程,但是 Django 在其基础上提供了更简化的支持.这些封装意在加快邮件发送,方便在开发时测试发送邮件,在不支持 SMTP ...

  4. SpringBoot集成邮件发送

    一:简述 在日常中的工作中难免会遇到程序集成邮件发送功能.接收功能:此篇文章我将使用SpringBoot集成邮件发送功能和接收功能:若对邮件一些基本协议和发送流程不懂的请务必参考我之前写的博客或者浏览 ...

  5. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         ...

  6. J2EE 邮件发送那些事儿

    距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...

  7. 结合ABP源码实现邮件发送功能

    1. 前言 2. 实现过程 1. 代码图(重) 2.具体实现 2.1 定义AppSettingNames及AppSettingProvider 2.2 EmailSenderConfiguration ...

  8. SSH项目里面 忘记密码的邮件发送功能

    package com.xxx.util; import java.util.Date; import java.util.Properties; import javax.mail.Address; ...

  9. [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作

    这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ...

随机推荐

  1. python 产生随机数,随机字符串

    import randomimport string#随机整数:print random.randint(1,50)#随机选取0到100间的偶数:print random.randrange(0, 1 ...

  2. .NET Core技术研究-配置读取

    升级ASP.NET Core后,配置的读取是第一个要明确的技术.原先的App.Config.Web.Config.自定义Config在ASP.NET Core中如何正常使用.有必要好好总结整理一下,相 ...

  3. mysql事务提交和回滚机制

    应用场景:   银行取钱,从ATM机取钱,分为以下几个步骤       1 登陆ATM机,输入密码:    2 连接数据库,验证密码:    3 验证成功,获得用户信息,比如存款余额等:    4 用 ...

  4. OpenCV-Python 理解K近邻 | 五十三

    目标 在本章中,我们将了解k近邻(kNN)算法的原理. 理论 kNN是可用于监督学习的最简单的分类算法之一.这个想法是在特征空间中搜索测试数据的最近邻.我们将用下面的图片来研究它. 在图像中,有两个族 ...

  5. 编译器移植到.NET Core失败记录和对.NET未来感想

    .NET Core是微软力推的新平台,影响力好像还越来越大.为了对这一行业趋势有所准备,最近把自己搞的编程语言的编译器从.NET移植.NET Core,以实现跨平台在Linux上运行,然而失败了. 原 ...

  6. 俩个对象的hashCode()相同,则equals()也一定为true,对吗?

    不对,俩个对象的hashCode()相同,equals()不一定为true. 代码示例: 1 String str1 = "通话"; 2 String str2 = "重 ...

  7. C++ STL模板和标准模板库

    一.函数模板 #include<iostream> #include<string> using namespace std; template<class T> ...

  8. 面试中常问的五种IO模型和BIO,NIO,AIO

    一,五种IO模型: 一个IO操作可以分为两个步骤:发起IO请求和实际的IO操作例如:1.操作系统的一次写操作分为两步:第一步,将数据从用户空间拷贝到系统空间:第二步,从系统空间往网卡写.2.一次读操作 ...

  9. Centos7 搭建FTP服务

    安装vsftpd yum install -y vsftpd 修改配置文件 cd /etc/vsftpd user_list # 白名单 ftpusers # 黑名单 vsftpd.conf # 配置 ...

  10. 泛型代码中的 default 关键字

    在泛型类和泛型方法中会出现的一个问题是,如何把缺省值赋给参数化类型,此时无法预先知道以下两点: l        T将是值类型还是引用类型 l        如果T是值类型,那么T将是数值还是结构 对 ...