PHP插件PHPMailer发送邮件功能


Posted in PHP onFebruary 28, 2017

本文实例为大家分享了ThinkPHP3.2.3发送邮件的具体代码,供大家参考,具体内容如下

首先第一步 :在网上down了一个PHPMailer插件,下载解压后,这里我们只需要用到其中两个文件,如下图所示:

PHP插件PHPMailer发送邮件功能

将class.phpmailer.php和class.smtp.php两个文件分别放置到
ThinkPHP/Library/Vendor/PHPMailer/class.phpmailer.php (注意大小写哦)
ThinkPHP/Library/Vendor/PHPMailer/class.smtp.php

PHP插件PHPMailer发送邮件功能

注意:现在放置的是thinkPHP默认的第三方类库目录,如果在index.php定义了如define('VENDOR_PATH',APP_PATH.'Common/Vendor/'); 那么文件放置的路径要与之相同,免得出现class 'PHPMailer' not found情况。

2、创建用户自定义函数文件Application/Home/Common/function.php,放置如下函数:

PHP插件PHPMailer发送邮件功能

/**
 * 功能:邮件发送函数
 * @param string $to 目标邮箱
 * @param string $subject 邮件主题(标题)
 * @param string $to 邮件内容
 * @return bool true
 */
 function sendMail($to, $subject, $content) {
 vendor('PHPMailer.class#smtp'); 
 vendor('PHPMailer.class#phpmailer'); //注意这里的大小写哦,不然会出现找不到类,PHPMailer是文件夹名字,class#phpmailer就代表class.phpmailer.php文件名
 $mail = new PHPMailer();
 // 装配邮件服务器
 if (C('MAIL_SMTP')) {
  $mail->IsSMTP();
 }
 $mail->Host = C('MAIL_HOST'); //这里的参数解释见下面的配置信息注释
 $mail->SMTPAuth = C('MAIL_SMTPAUTH'); 
 $mail->Username = C('MAIL_USERNAME');
 $mail->Password = C('MAIL_PASSWORD');
 $mail->SMTPSecure = C('MAIL_SECURE');
 $mail->CharSet = C('MAIL_CHARSET');
 // 装配邮件头信息
 $mail->From = C('MAIL_USERNAME');
 $mail->AddAddress($to);
 $mail->FromName = C('MAIL_FROMNAME');
 $mail->IsHTML(C('MAIL_ISHTML'));
 // 装配邮件正文信息
 $mail->Subject = $subject;
 $mail->Body = $content;
 // 发送邮件
 if (!$mail->Send()) {
  return FALSE;
 } else {
  return TRUE;
 }
 }

3、上述函数中,用到C方法来加载了一些配置信息,所以我们得在配置文件里(默认/Application/Home/Conf/config.php)加入如下配置信息:

<?php
 return array(
 //其他配置项省略......
 // 配置邮件发送服务器
 'MAIL_SMTP'   => TRUE,
 'MAIL_HOST'   => 'smtp.163.com',   //邮件发送SMTP服务器
 'MAIL_SMTPAUTH' => TRUE,
 'MAIL_USERNAME' => '123***@163.com',  //SMTP服务器登陆用户名
 'MAIL_PASSWORD' => '123456abc',    //SMTP服务器登陆密码
 'MAIL_SECURE'   => 'tls',
 'MAIL_CHARSET'  => 'utf-8',
 'MAIL_ISHTML'   => TRUE,
 'MAIL_FROMNAME' => '某某网站客户',
 );

4、开始调用,假设通过网址/?m=home&c=index&a=send访问,那我们相应的在Application/Home/Controller/IndexController.class.php文件里加入方法,如下: 

<?php
 namespace Home\Controller;
 use Think\Controller;
 class IndexController extends Controller {
 public function index(){
  
 }
 public function send(){
  if(sendMail('vsiryxm@qq.com','你好!邮件标题','这是一篇测试邮件正文!')){
   echo '发送成功!';
  }
  else{
   echo '发送失败!';
  }
 }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
最新的php 文件上传模型,支持多文件上传
Aug 13 PHP
php小型企业库存管理系统的设计与实现代码
May 16 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 PHP
计算php页面运行时间的函数介绍
Jul 01 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
php数组查找函数总结
Nov 18 PHP
php简单图像创建入门实例
Jun 10 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
PHP将整数数字转换为罗马数字实例分享
Mar 17 PHP
php和asp语法上的区别总结
May 12 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 #PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 #PHP
PHP中让json_encode不自动转义斜杠“/”的方法
Feb 28 #PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 #PHP
php获取今日开始时间和结束时间的方法
Feb 27 #PHP
php+mysql+jquery实现日历签到功能
Feb 27 #PHP
php查找字符串中第一个非0的位置截取
Feb 27 #PHP
You might like
浅谈电磁辐射对健康的影响
2021/03/01 无线电
php strstr查找字符串中是否包含某些字符的查找函数
2010/06/03 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
Javascript 刷新全集常用代码
2009/11/22 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
.net软件工程师应聘上机试题
2015/03/10 面试题
大学生励志演讲稿
2014/04/25 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
关于开学的感想
2015/08/10 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS