背景
web 开发过程中,经常会用到邮件的发送功能,比如接收消费账单的提醒、亚马逊图书推荐的推送,或者网站不正常操作报警的邮件提示等。
下面是一个在ThinkPHP 3.2.3 框架下集成 PHPMailer 使用的邮件发送功能实现过程,仅供参考,谢谢...
一、前期准备
1).首先对 STMP 的知识稍作了解
2).开启邮箱 STMP 服务
- 以 163.com 邮箱为例,点击上方导航栏的“设置”,选择“POP3/SMTP/IMAP”进行下面的设置
- 着重记下服务器地址(SMTP服务器:smtp.163.com)
- 然后点击“客户端授权密码”进行权限设置,一般会进行短信的验证,并记录下自己设定的授权登录密码,后面的代码中需要用到。
二、代码实现
1).在公共配置文件中,进行数据配置
//邮件发送 配置
'EMAIL_CONFIG' => array(
'host' => 'smtp.163.com',
'post' => '25',
'username' => 'xxxxxxxxxx@163.com',//TODO 邮箱账号
'password' => 'xxxxxxx',//TODO 客户端授权密码
'sender' => '木头人',//TODO 发送人昵称
),
2).Email 核心代码如下
- 注意 phpmailer 代码包所放的位置,以便后面的 Email 类的实例化
- 此处代码主要是调用配置文件数据,无需变动,需要深入学习的可以自行阅读.
3).设计前端显示界面
- 路径:./Application/M/Vieww/Email/index.html
- 核心 js 代码如下:
function send() {
var toUrl = "{:U('Email/send')}";
var postData = $("#form-email").serialize();
$.ajax({
type: "POST",
url: toUrl,
data: postData,
dataType: "json",
success: function (res) {
layer.msg(res.message);
}
});
}
4).后台代码
- 路径:‘.\Application\M\Controller\EmailController.class.php’
- 调用邮件发送功能的核心代码为下图中红色框内三行。
三、功能实现效果
1).前端信息输入
- 注意:邮箱输入错误或者内容填写太过随意,会造成发送失败,邮件可在发送者邮箱看到,提示“抱歉,您的邮件被退回来了...”。
2).接收邮箱的成功接收
- 如果操作正常,上面输入的邮箱中会接收到对应的邮件,但是有的可能会在自己的“垃圾箱”中,注意查收.
三、附录
1).参考视频
2).源代码下载