Yii2.0 探究四 :收发电子邮件

一、强悍的扩展—— yii2-swiftmailer:

原理: Yii2.0中集成了邮件的发送类,包括基础的操作的封装,这也是框架的强大之处:类似的还有国际化的多语言配置,等等可以去探索,
操作:主要是体现在配置方面:

  1. 开启邮箱的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)访问远程服务器上的邮件。维基百科

    处理的问题是:支持邮件的操作,例如标记、移动等等,会反馈到服务端;

三、区别与联系
  1. SMTP和POP3
    答:
    区别:SMTP是发送邮件的协议,POP3是接收离线邮件的协议
    联系:同属于TCP/IP 协议一族。
    会意:一个发信,一个收信;
  2. POP3和IMAP
    答:
    区别:POP3只是被动接受邮件,并不能和服务器产生交互;IMAP支持操作邮件,并且会返回到服务器;
    联系:都是接收邮件;同属于TCP/IP协议一族;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值