利用zend-view发送邮件的构思和实现

最近在敲打SchuEngine(GitHub)的过程中发现zend-mail发送邮件的种种不便利,决定改进.既然大名鼎鼎的ZendFramework有如此强大的MVC过程和zend-view,何不利用?

一, ZF3 MVC过程概述

按照ZendFramework 3.0 中MvcEvnet的定义,MVC过程大概分为以下阶段(详细过程请关注本人博客Vett,抽时间详述):



1. MvcEvent::EVENT_BOOTSTRAP

目前的ZendFramework对Bootstrap做了大规模的改进,使其在作为MVC事件的开始,主需要绑定一些后续事件即可,这些事件的最主要工作就是初始化View层的Model(ViewModel可以理解为是嵌套结构的View层的原始数据,封装了参数容器,嵌套规则,以及模板"路径"的这么个玩意)

2. MvcEvent::EVENT_ROUTER

路由阶段,负责找到请求对应的Controller和Action

3. MvcEvent::EVENT_DISPATCH

触发上节找到的Controller中的Action,返回的是ViewModel

4. MvcEvent::EVENT_RENDER

这个阶段负责将上节返回的ViewModel,渲染成String,然后将其注入到Response中,准备响应

5. MvcEvent::EVENT_FINISH

响应Response

二, 需求如何实现

弄清楚的ZendFramework 3.0的MVC过程,就该实现我们的业务了,如何作为邮件发送上文渲染过程中生成的String?

是的! 拦截Response的响应过程.

实现如下:

1. 在Controller中指明我们需要将这个生成的模板作为邮件发送

2. 在Controller中生成好邮件的Header(Content-Type, 收件人, 发件人, Cc, Bcc, Subject等)

大功告成,就这样schu-mail诞生了,当然今天的它只支持SMTP协议.

三, 展示

作为SchuEngine的邮件系统,schu-mail基于ZendFramework 3.0的MVC过程,以及zend-mail.

请移步GitHub for schu-mail看个究竟.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值