首页 理论教育实战教程:使用PHPMVC发送电子邮件

实战教程:使用PHPMVC发送电子邮件

【摘要】:电子邮件发送是网站开发中重要的功能,典型的应用场景有会员注册、邮件订阅、密码找回等。事实上,主流的邮件系统都是基于SMTP验证的,并且支持Socket连接。所以开发人员可以直接在PHP中使用fsockopen函数向服务器提交数据,SMTP默认情况下会监听25号通信端口,如果校验通过,邮件系统会直接执行Socket发送的命令,完成邮件处理。ThinkPHP本身没有内置邮件发送扩展,接下来将使用第三方扩展类库实现邮件发送。表11-3 SendMessage配置选项其中邮件配置项必须为mail元素值。

电子邮件发送是网站开发中重要的功能,典型的应用场景有会员注册、邮件订阅、密码找回等。可靠的邮件发送系统能够有效改善用户体验。PHP本身内置了mail函数,该函数在处理邮件上具有快速、稳定的特性,所以许多大型网站都在使用mail函数构建邮件系统。但是mail函数对运行环境要求比较苛刻,而且不支持SMTP登录验证,所以很多开发者更加喜欢使用基于安全验证的大型邮件系统(例如Postfix、SendMail等)来构建PHP邮件发送程序。

事实上,主流的邮件系统都是基于SMTP验证的,并且支持Socket连接。所以开发人员可以直接在PHP中使用fsockopen函数向服务器提交数据,SMTP默认情况下会监听25号通信端口,如果校验通过,邮件系统会直接执行Socket发送的命令,完成邮件处理。

ThinkPHP本身没有内置邮件发送扩展,接下来将使用第三方扩展类库实现邮件发送。下载地址为http://www.beauty-soft.net/book/php_mvc/vendor/send_message.html。

下载完成并解压后,得到SendMessage.class.php类库文件,将该文件复制到项目Lib/ORG目录中。接下来就可以在项目中使用了。如以下代码所示。

978-7-111-42852-7-Part02-617.jpg

978-7-111-42852-7-Part02-618.jpg

需要注意的是,这里只是完成了PHP代码方面的编程,读者在学习或开发中需要正确发送邮件,还需要在本机或远程服务器上配置SMTP邮件发送系统(建议使用Postfix),关于邮件系统的搭建,读者可以参阅笔者在博客里写的一篇文章,网址为http://beauty-soft.net/blog/ceiba/PHP/postfix.html,在此不再细述。

SendMessage扩展类库需要在初始化时配置数据选项,也可以直接在项目配置文件中定义,前者优先级大于后者。下面将介绍常用及重要的配置项,如表11-3所示。

表11-3 SendMessage配置选项

978-7-111-42852-7-Part02-619.jpg

其中邮件配置项必须为mail元素值。mail_templ配置项表示模板文件,可以指定HTML文件或者PHP文件,该文件支持如下模板标签。(www.chuimin.cn)

➢{title}:HTML邮件标题。

➢{body}:HTML邮件正文内容。

➢{form}:邮件发送者。

➢{time}:邮件发送时间。

一个最简单的邮件模板如以下代码所示。

978-7-111-42852-7-Part02-620.jpg

978-7-111-42852-7-Part02-621.jpg

所有配置项支持在项目配置文件中配置,只需要将表11-3的配置项赋值给SendMessage元素即可,如以下代码所示。

978-7-111-42852-7-Part02-622.jpg