Yii2.0 探究四 :收发电子邮件
来源:互联网 发布:算法谜题中文pdf 编辑:程序博客网 时间:2024/06/01 19:48
一、强悍的扩展—— yii2-swiftmailer:
原理: Yii2.0中集成了邮件的发送类,包括基础的操作的封装,这也是框架的强大之处:类似的还有国际化的多语言配置,等等可以去探索,
操作:主要是体现在配置方面:
开启邮箱的SMTP服务,那么SMTP是什么呢?
SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用TCP端口25。要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXchange) DNS。参照维基百科;
由此我们总结下它的特点:
- 类型:基于文本的协议
- 作用:用来通过邮件的方式传输文本内容,通过搭建SMTP服务器
- 端口(port):25
- 范围:一对一、或者一对多,在理论上都是可行的;
局限性:
- 安全问题和垃圾邮件的产生
问题是没有用户的验证,后面添加了auth扩展
而在这里就是借助于已经搭建好的邮件服务器,免费收发邮件;包括国内的qq、网易163等等邮箱服务器都支持SMTP,但是要通过登录开启(下面讲解我们以163邮箱为例)
2. 组件注册方式配置:
其中yii2.0的basic的Config\web.php中进行配置
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'useFileTransport' => false, //改为false,默认只有以上两个 'viewPath'=>'@common/mail' //可选,视图展式 'transport'=>[ 'class'=>'Swift_SmtpTransport', 'host'=>'smtp.163.com', 'username'=>'用户名@163.com', 'password'=>'此处填写授权码', 'port'=>'25', 'encryption'=>'tls', ], ],
3.控制器中调用:
public function actionMail(){ $mail = Yii::$app->mailer->compose() ->setFrom('m13993334619@163.com') // 配置的用户 ->setTo('1791502202@qq.com') // 发送的用户 ->setSubject('邮件配置') ->setTextBody('这是发送的邮件,请按链接完成注册') ->setHtmlBody('<span>发送成功,请返回</span>') ->send(); if($mail) return '发送成功'; else return '发送失败'; }
ok,至此邮件已经可以正常发送了。
二、其他拓展
1. 关于邮件的服务
POP3
邮局协议(Post Office Protocol,简称POP)是TCP/IP协议族中的一员,由RFC 1939定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。最新版本为POP3,全名“Post Office Protocol - Version 3”,而提供了SSL加密的POP3协议被称为POP3S。维基百科 ;
处理的问题是:支持邮件的客户端处理,处理离线的邮件(因为发送邮件的时候收信人多半不在,接收问题)
IMAP
Internet Message Access Protocol(缩写为IMAP,以前称作交互邮件访问协议)是一个应用层协议,用来从本地邮件客户端(如Microsoft Outlook、Outlook Express、Foxmail、Mozilla Thunderbird)访问远程服务器上的邮件。维基百科
处理的问题是:支持邮件的操作,例如标记、移动等等,会反馈到服务端;
三、区别与联系
- SMTP和POP3
答:
区别:SMTP是发送邮件的协议,POP3是接收离线邮件的协议
联系:同属于TCP/IP 协议一族。
会意:一个发信,一个收信; - POP3和IMAP
答:
区别:POP3只是被动接受邮件,并不能和服务器产生交互;IMAP支持操作邮件,并且会返回到服务器;
联系:都是接收邮件;同属于TCP/IP协议一族;
- Yii2.0 探究四 :收发电子邮件
- 使用VB收发电子邮件
- 电子邮件收发协议总结
- Yii2.0 探究一:配置运行环境
- Yii2.0 探究三 :用户登录机制
- Yii2.0 探究三 :用户登录机制
- 用Telnet快速收发电子邮件- -
- SCOUNIX下如何收发电子邮件
- 用Telnet快速收发电子邮件
- PB应用中收发电子邮件
- 用Telnet快速收发电子邮件
- Jmail组件实现电子邮件收发
- Python3笔记-电子邮件的收发
- Yii2.0 探究七 异常报错提示:yii\validators
- Linux网络底层收发探究
- 使用JavaMail实现收发电子邮件功能
- delphi电子邮件收发编程讲解与实例
- 在PB应用中收发电子邮件
- 微信小程序日记——高仿知乎日报(上)
- VelocityTracker---速度追踪
- 图像处理入门<1>——matlab数字图像处理基本操作
- 关于使用linux的命令排查服务器的性能问题
- OllyDBG完美教程(超强入门级)
- Yii2.0 探究四 :收发电子邮件
- iOS 浅谈:深.浅拷贝与copy.strong
- Android多分辨率适配框架(2)— 原理剖析
- IFrame实现HTML代码调试效果
- 树链剖分
- Object-c冒泡排序
- Android 操作系统-如何保障上亿行代码的质量与安全?
- Linux无线驱动安装历程(rtl8192eu驱动安装,开机自启动)
- make的使用