ThinkPHP利用PHPMailer实现邮件发送实现代码


Posted in PHP onSeptember 26, 2013

本文所使用的是ThinkPHP 2.1版和 PHPMailer 5.1版。(后者建议您直接从本博下载,因为我们不能保证下面的代码在所有版本的PHPMailer中都能正常运行)

下面是具体步骤:

第一步、添加PHPMailer类库

点击此处下载
将下载后的文件解压,将PHPMail目录移动至ThinkPHP目录中的Vendor内。(请确保class.phpmailer.php文件就在ThinkPHPVendorPHPMailerclass.phpmailer.php)

第二步、添加发送邮件函数

在项目目录中的Common文件夹中的common.php文件(如果没有请创建)添加如下代码:

<?php
/**********
 * 发送邮件 *
 **********/
function SendMail($address,$title,$message)
{
    vendor('PHPMailer.class#PHPMailer');
    $mail=new PHPMailer();
    // 设置PHPMailer使用SMTP服务器发送Email
    $mail->IsSMTP();
    // 设置邮件的字符编码,若不指定,则为'UTF-8'
    $mail->CharSet='UTF-8';
    // 添加收件人地址,可以多次使用来添加多个收件人
    $mail->AddAddress($address);
    // 设置邮件正文
    $mail->Body=$message;
    // 设置邮件头的From字段。
    $mail->From=C('MAIL_ADDRESS');
    // 设置发件人名字
    $mail->FromName='LilyRecruit';
    // 设置邮件标题
    $mail->Subject=$title;
    // 设置SMTP服务器。
    $mail->Host=C('MAIL_SMTP');
    // 设置为“需要验证”
    $mail->SMTPAuth=true;
    // 设置用户名和密码。
    $mail->Username=C('MAIL_LOGINNAME');
    $mail->Password=C('MAIL_PASSWORD');
    // 发送邮件。
    return($mail->Send());
}
?>

第三步、配置邮箱信息

编辑Conf目录下的config.php,在return array添加如下内容

    'MAIL_ADDRESS'=>'xxx@126.com', // 邮箱地址
    'MAIL_SMTP'=>'smtp.126.com', // 邮箱SMTP服务器
    'MAIL_LOGINNAME'=>'xxx', // 邮箱登录帐号
    'MAIL_PASSWORD'=>'xxx', // 邮箱密码

其中的邮箱登录帐号可能需要包括@后面的内容,请自行尝试^_^
第四步、在Action中发送邮件
由于ThinkPHP会自动加载common.php中的函数,所以在需要发送邮件的时候,只需要使用如下代码即可。
SendMail("xxx@xxx.com","邮件标题","邮件正文");

至此,本教程已经结束。撒花~~~

欢迎成功配置的同学SendMail("dreamrunner@foxmail.com","我也会用ThinkPHP发送邮件啦","哇啦哇啦~~");

还有一些说明

如果邮件正文中需要换行怎么办呢?其实,最简单的方法是——

SendMail("xxx@xxx.com","邮件标题","邮件正文
我换行啦~~!");

QQ邮箱(含foxmail)和网易的126、163都测试成功。因为近期访问GMail比较吃力,所以没有测试。听说GMail要求必须使用SSL,有这方面需要的同学自行谷歌百度PHPMailer的方法。

PHP 相关文章推荐
使用php重新实现PHP脚本引擎内置函数
Mar 06 PHP
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
php中存储用户ID和密码到mysql数据库的方法
Feb 06 PHP
php中DOMElement操作xml文档实例演示
Mar 26 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
重新认识php array_merge函数
Aug 31 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
Web程序工作原理详解
Dec 25 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
PHP实现今天是星期几的几种写法
Sep 26 #PHP
一个PHP的远程图片抓取函数分享
Sep 25 #PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 #PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 #PHP
php实现的获取网站备案信息查询代码(360)
Sep 23 #PHP
DOM XPATH获取img src值的query
Sep 23 #PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 #PHP
You might like
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
php中文字符截取防乱码
2008/03/28 PHP
php连接数据库代码应用分析
2011/05/29 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
2012/05/23 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
Python下载懒人图库JavaScript特效
2015/05/28 Python
python 队列详解及实例代码
2016/10/18 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
台湾森森购物网:U-mall
2017/10/16 全球购物
构造器Constructor是否可被override?
2013/08/06 面试题
武汉东之林科技有限公司机试
2013/09/17 面试题
新闻专业个人自我评价
2013/09/21 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
走群众路线剖析材料
2014/10/09 职场文书
滴水洞导游词
2015/02/10 职场文书
公司食堂管理制度
2015/08/05 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python