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 相关文章推荐
PHP3 safe_mode 失效漏洞
Oct 09 PHP
PHP 表单提交给自己
Jul 24 PHP
php完全过滤HTML,JS,CSS等标签
Jan 16 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
Jan 11 PHP
php中常用的预定义变量小结
May 09 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
Oct 03 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
yii用户注册表单验证实例
Dec 26 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
PHP实现Unicode编码相互转换的方法示例
Nov 17 PHP
Laravel模型间关系设置分表的方法示例
Apr 21 PHP
laravel框架之数据库查出来的对象实现转化为数组
Oct 23 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处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
JavaScript中Function详解
2015/02/27 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
浅谈js闭包理解
2019/04/01 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
Python程序语言快速上手教程
2012/07/18 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
Python for循环中的陷阱详解
2018/07/13 Python
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
政府信息公开实施方案
2014/05/09 职场文书
2014年师德承诺书
2014/05/23 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
婚前保证书范文
2015/02/28 职场文书
Python入门之基础语法详解
2021/05/11 Python
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android