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 相关文章推荐
用libTemplate实现静态网页的生成
Oct 09 PHP
PHP中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
用PHP连接MySQL代码的参数说明
Jun 07 PHP
php 结果集的分页实现代码
Mar 10 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
php通过各种函数判断0和空
Jul 04 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
Feb 10 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
基于mysql的bbs设计(五)
2006/10/09 PHP
PHP 页面编码声明方法详解(header或meta)
2010/03/12 PHP
php cli换行示例
2014/04/22 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
微信小程序模板消息推送的两种实现方式
2019/08/27 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
浅谈python迭代器
2017/11/08 Python
儿童学习python的一些小技巧
2018/05/27 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
实例介绍Python中整型
2019/02/11 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
使用pip安装python库的多种方式
2019/07/31 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
彻底解决Python包下载慢问题
2020/11/15 Python
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
过滤器的用法
2013/10/08 面试题
Ejb技术面试题
2015/04/29 面试题
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python