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 相关文章推荐
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
PHP打开和关闭文件操作函数总结
Nov 18 PHP
Yii使用ajax验证显示错误messagebox的解决方法
Dec 03 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
codeigniter显示所有脚本执行时间的方法
Mar 21 PHP
PHP实现的进度条效果详解
May 03 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 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
PHP中source #N问题的解决方法
2014/01/27 PHP
PHP编写简单的App接口
2016/08/28 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
载入进度条 效果
2006/07/08 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python中实现三目运算的方法
2015/06/21 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
Python3.7安装keras和TensorFlow的教程图解
2020/06/18 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
国庆横幅标语
2014/10/08 职场文书
电工实训报告总结
2014/11/05 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
分析并发编程之LongAdder原理
2021/06/29 Java/Android
修改并编译golang源码的操作步骤
2021/07/25 Golang