legend3---lavarel中使用qq邮箱发送邮件
legend3---lavarel中使用qq邮箱发送邮件
一、总结
一句话总结:
第一步:配置邮箱做服务器,比如qq邮箱,网易163邮箱
第二步:配置lavarel的配置文件
第三部:写邮件发送代码就去看lavarel的手册,很详细
1、在qq邮箱中配置IMAP/SMTP服务的时候的授权码的作用是什么?
方便第三方登录:在lavarel中使用邮箱用户名加授权码登录以便发送邮件
2、lavarel中的mail源文件的位置在哪?
vendor的lavavel里面:legend3\vendor\laravel\framework\src\Illuminate\Mail\Mailer.php
3、lavarel中发送邮件的方法主要是什么方法?
send方法:\Mail::send('mail.reg',[],function ($message){
//发送邮件
public function send_email(){
\Mail::send('mail.reg',[],function ($message){
$message->to('404006308@qq.com');
$message->subject('亲爱的用户,恭喜您注册成功');
});
}
二、lavarel中使用qq邮箱发送邮件
第一步:配置邮箱做服务器,比如qq邮箱
在邮箱设置开启POP3/SMTP服务和IMAP/SMTP服务


会让你发送短信验证,然后给你授权码(在lavarel中配置需要)
(这张是用的别人的图片)

第二步:配置lavarel的配置文件
配置.env

配置config中的mail


第三部:写邮件发送代码就去看lavarel的手册,很详细

最简单的发送代码
//发送邮件
public function send_email(){
\Mail::raw('邮件测试',function ($message){
$message->to('404006308@qq.com');
});
}
成功实例

带上主题
//发送邮件
public function send_email(){
\Mail::raw('邮件测试',function ($message){
$message->to('404006308@qq.com');
$message->subject('亲爱的用户,恭喜您注册成功');
});
}

5、发送视图代码及实例
send方法
//发送邮件
public function send_email(){
\Mail::send('mail.reg',[],function ($message){
$message->to('404006308@qq.com');
$message->subject('亲爱的用户,恭喜您注册成功');
});
}
视图位置

视图代码
{{--用户注册发送邮件的模板视图--}}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
<h1>1</h1>
</body>
</html>
收到的邮件结果


二、Laravel自带SMTP邮件组件实现发送邮件(QQ、163、企业邮箱都可)
转自或参考:Laravel自带SMTP邮件组件实现发送邮件(QQ、163、企业邮箱都可)
https://blog.csdn.net/woqianduo/article/details/81024244
生成控制器
php artisan make::controller MailController
配置路由
Route::any('mail/send','MailController@send');
在app/Http/Controllers生成了一个MailController控制器,如下所示:
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
class MailController extends Controller {
//
}
编辑上面控制器,加入以下的逻辑处理:
use Mail;
class MailController{
public function send() {
$name = '我发的第一份邮件';
// Mail::send()的返回值为空,所以可以其他方法进行判断
Mail::send('emails.test',['name'=>$name],function($message){
$to = '123456789@qq.com'; $message ->to($to)->subject('邮件测试');
});
// 返回的一个错误数组,利用此可以判断是否发送成功
dd(Mail::failures());
}
}
Mail::send();需要传三个参数,第一个为引用的模板,第二个为给模板传递的变量(邮箱发送的文本内容),第三个为一个闭包,参数绑定Mail类的一个实例。
在resources/emails下创建一个模板文件。
{{$name}} hello world。
好,现在在服务器上进行测试了,在地址栏输入http://localhost/mail/send(自己的访问地址),发送成功。
1. 发送纯文本邮件
Mail::raw('你好,我是PHP程序!', function ($message) {
$to = '123456789@qq.com';
$message ->to($to)->subject('纯文本信息邮件测试');
});
2.邮件中发送附件
发生图片:
{{$name}},这是一封测试邮件
<br>
<img src="{{$message->embedData($image,'test.jpg')}}">
public function send(){
$image = Storage::get('images/obama.jpg'); //本地文件
//$image = 'http://www.baidu.com/sousuo/pic/sdaadar24545ssqq22.jpg';//网上图片
Mail::send('emails.test',['image'=>$image],function($message){
$to = '123456789@qq.com';
$message->to($to)->subject('图片测试');
});
if(count(Mail::failures()) < 1){
echo '发送邮件成功,请查收!';
}else{
echo '发送邮件失败,请重试!';
}
}
3. 邮件附件
public function sendFile(){
$name = '我发的第一份邮件';
Mail::send('emails.test',['name'=>$name],function($message){
$to = '123456789@qq.com';
$message->to($to)->subject('邮件测试');
$attachment = storage_path('xls/files/test.xls');
// 在邮件中上传附件
$message->attach($attachment,['as'=>'中文文档.xls']);
});
}
$message的attach方法上传附件,该方法第一个参数是附件地址,第二个参数为一些额外参数,这里我们通过as指定附件在邮件中的显示名称。
测试如果显示文件名乱码的话,就这样写
$message->attach($attachment,['as'=>"=?UTF-8?B?".base64_encode('中文文档')."?=.xls"]);
-
legend3---lavarel中使用qq邮箱发送邮件的更多相关文章
- 仿联想商城laravel实战---7、lavarel中如何给用户发送邮件
仿联想商城laravel实战---7.lavarel中如何给用户发送邮件 一.总结 一句话总结: 设置邮件服务器,比如163邮箱 lavarel中配置邮件服务,在.env中 控制器中使用Mail对象发 ...
- 杂项之使用qq邮箱发送邮件
杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏 ...
- 在Outlook中设置QQ邮箱
原本以为在Outlook中设置QQ邮箱没多大难度,但我错了,估计错了腾讯的麻烦程度,故记录下来. ----- 打开Outlook 2013(Outlook 2010也差不多),若是第一次打开会提示你设 ...
- python3通过qq邮箱发送邮件
python3通过qq邮箱发送邮件 0.了解qq邮箱的SMTP QQ邮箱 POP3 和 SMTP 服务器地址设置如下: 邮箱 POP3服务器(端口995) SMTP服务器(端口465或587) qq. ...
- ecshop QQ邮箱发送邮件服务器配置
ecshop QQ邮箱发送邮件服务器配置 1.邮件服务:采用其他的SMTP服务 2.邮件服务器是否要求加密连接(SSL): 是 此项设置需要php支持openSSL模块 开启方法: a.php.ini ...
- SpringBoot使用qq邮箱发送邮件
最近公司要做一个邮箱注册和重置密码的功能,因为之前就做过,但是不是Springboot项目,所以相对来说还是比较容易的,在这里记录一下. 一.引用Maven依赖 这里使用spring自带的邮件jar包 ...
- python qq邮箱发送邮件
使用qq发送邮件 # coding=utf8 """ qq邮箱发送邮件 """ import sys reload(sys) sys.set ...
- 基于java mail实现简单的QQ邮箱发送邮件
刚学习到java邮件相关的知识,先写下这篇博客,方便以后翻阅学习. -----------------------------第一步 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 S ...
- 使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.MessagingException: Exception reading response
使用 QQ 邮箱发送邮件报错:java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.Messagin ...
随机推荐
- wyy Downloader(当前置顶项目)
第一个大刀阔斧肝的 PY 项目,名称简称为 wyyDLer 公开 EXE 计划: 感觉程序应该是没什么可以完善的了,然后就顶雷([雾 ) 把 EXE 放上来好了 1.2版下载链接 应该不会出事把 Qv ...
- 正则表达式、原始字符串及re
正则表达式.原始字符串及re re是python中的一个文本解析工具,常用的方法有: 来源:https://www.ibm.com/developerworks/cn/opensource/os-cn ...
- mysql复制表结构,复制表数据
MYSQL 复制表 show create table table_name:查看表的建表语句.该语句包含了原数据表的结构,索引等. 使用 SHOW CREATE TABLE 命令获取创建数据表(CR ...
- Oracle 之 触发器
触发器是特定的事件出现的时候,自动隐式执行代码块,这个过程用户无法控制,用户只能控制触发的事件,触发后的操作,触发过程是自动执行的. 定义触发器: 1.名称 2.触发时间:是在执行事件之前(befor ...
- java数据结构复习01
1.数组 package javaDataStruct.array01; public class MyArray { private int[] arr; // 表示有效数据的长度 private ...
- 告别if/else连环写法
1.once Upon a time 在平时的编码过程中,我们大部分新手可能都特别钟情于 if/else连环写法,比如举个简单栗子: 拿订单来说,我们正常的订单类型有多种,那么对应就会生成不同的收款, ...
- Java集合及Concurrent并发包总结
1.集合包 集合包最常用的有Collection和Map两个接口的实现类,Colleciton用于存放多个单对象,Map用于存放Key-Value形式的键值对. Collection中最常用的又分为两 ...
- 解决IDEA Initialization error 'https://start.spring.io'
IDEA Initialization error 'https://start.spring.io' 弹出一个error窗口 就是不能连接https://start.spring.i ...
- html aside标签 语法
html aside标签 语法 aside是什么意思? aside为语义化标签,通常用来描述与文档主体内容不相关的内容,其aside标签的内容应该与附近的内容相关. 作用:定义其所处内容之外的内容.直 ...
- T3
T3构造图