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 危险函数解释 分析
Apr 22 PHP
php 学习资料零碎东西
Dec 04 PHP
php中导出数据到excel时数字变为科学计数的解决方法
Feb 03 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
Yii2增删改查之查询 where参数详细介绍
Aug 08 PHP
php中引用符号(&amp;)的使用详细介绍
Dec 06 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 15 PHP
用php如何解决大文件分片上传问题
Jul 07 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判断是否为空的几个函数对比
2015/04/21 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python中每次处理一个字符的5种方法
2015/05/21 Python
Python 常用string函数详解
2016/05/30 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
Python模块future用法原理详解
2020/01/20 Python
财务经理岗位职责
2013/11/09 职场文书
美术毕业生求职信
2014/02/25 职场文书
土地转让协议书范本
2014/04/15 职场文书
大型营销活动计划书
2014/04/28 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
2015年班组长工作总结
2015/04/10 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书