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 相关文章推荐
Optimizer与Debugger兼容性问题的解决方法
Dec 01 PHP
php smarty模版引擎中变量操作符及使用方法
Dec 11 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
php function用法如何递归及return和echo区别
Mar 07 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
Yii中表单用法实例详解
Jan 05 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
利用ajax和PHP实现简单的流程管理
Mar 23 PHP
PHP-FPM和Nginx的通信机制详解
Feb 01 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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
神族 Protoss 历史背景
2020/03/14 星际争霸
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
Laravel下生成验证码的类
2017/11/15 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
javascript 跨域问题以及解决办法
2017/07/17 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
python获取糗百图片代码实例
2013/12/18 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Python接口开发实现步骤详解
2020/04/26 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
连锁酒店店长职责范本
2014/02/13 职场文书
财务部绩效考核方案
2014/05/04 职场文书
销售口号霸气押韵
2015/12/24 职场文书
党员读书活动心得体会
2016/01/14 职场文书
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL