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 ...
随机推荐
- 元素定位--firebug安装
1.火狐浏览器调试工具firebug插件的安装 打开浏览器---添加组件---搜索firebug
- 利用aopc创建schema失败
执行neo4j-graph-algorithms的例子,运行以下代码报错: CALL apoc.schema.assert( {Category:['name']}, {Business:['id'] ...
- Deadlock_synchromized-Java_se
class Test implements Runnable{ private boolean flag; Test(boolean flag) { this.flag = flag; } publi ...
- help_topic表,以字符拆分,一行转多行
help_topic表是数据库mysql下的一个表 SUBSTRING_INDEX(s, delimiter, number) 返回从字符串 s 的第 number 个 ...
- 关于strcpy的安全函数的选择
1)如果整个程序,在进行字符拷贝时,这个拷贝字符串的完整性,不影响整个程 序的运行,可以让其截取一部分字符串,程序继续执行.那么我们就可以选择安全 函数:strncpy_s 2)如果在进行字符串拷贝时 ...
- App原生、混合、纯WEB开发模式的优劣分析
什么叫做原生App? 什么是混合app? 什么是Web App开发? Native App开发即我们所称的传统APP开发模式(原生APP开发模式),该开发针对IOS.Android等不同的手机操作系统 ...
- NoSQL与其常见的产品
一. 什么是NoSQL NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",它是一种非关系型数据库. 二. 为什么要有NoSQL 在现代的计算系统上每 ...
- 下载并安装eclipse
一. 下载eclipse 1. 进入eclipse官网——www.eclipse.org 2. 点击“DOWNLOAD”,进入下载界面 3. 点击“Download Packages”,选择所需ecl ...
- feign请求写法
@FeignClient(value = "test", url = "${proxy.srvs.test:}") public interface ISubS ...
- PHP三种字符串界定符的区别(单引号,双引号,<<<)
单引号,双引号,<<<的区别如下: 前续:今天突然遇到了<<<EOT,可在运行的时候出错了,所以就度娘了下. 1.单引号:’a string’ \’是唯一的转 ...